gpt4 book ai didi

C# 程序集,程序集中有什么?

转载 作者:IT王子 更新时间:2023-10-29 04:30:44 26 4
gpt4 key购买 nike

我正在尝试了解 C# 中的内部访问修饰符。我似乎无法理解程序集究竟是什么,以及我的程序的哪一部分包含在该程序集中。我试图使变量只能由以下命名空间中的对象访问:

namespace Engine.Entity

有问题的变量是在该命名空间内的一个类中定义的,所以我假设如果我将它设为内部变量,则只有该命名空间内的对象才能访问它。我将程序集和 namespace 视为一体,但我认为这是不对的。

最佳答案

命名空间只影响名称解析。命名空间并不意味着任何类型的存储,命名空间也不决定哪些 DLL 包含您的代码。命名空间允许您将相关事物组合在一个逻辑名称下,即使它们在物理上可能驻留在不同的 DLL 中。

程序集基本上只是一个 DLL 或 EXE 文件。它包含 IL 代码和描述该 DLL 或 EXE 中代码的类型信息。它也可以包含很多其他内容,但对于初学者来说,只需将其视为一个 DLL。

通过将代码编译到生成 DLL 或 EXE 的项目 (csproj) 中,将代码放入特定程序集中。

命名空间可以跨越多个程序集。也就是说,作为该逻辑命名空间成员的类可能驻留在多个 DLL 中。仅当您的项目引用包含该类的正确程序集 (DLL) 时,您才能访问源代码中的特定类。

Internal 修饰符意味着只能从同一程序集中访问该符号。只有编译到与您的代码相同的 DLL 中的代码才能访问带有内部标记的属性或方法。

关于C# 程序集,程序集中有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com