![]() |
1
9
分部类不能跨越程序集,因此这不起作用。 您可以将类定义为:
这意味着只有具有类内部访问权限的代码才能设置
我最近不得不为我所研究的一个API做与此非常类似的事情。我们的API主要是使用接口来定义的,所以我可以通过一个公共的API项目(公共部分)和一个内部的API项目(构成我们内部代码使用的API)来实现这一点,内部接口是从公共接口派生的。API接口的实现实现了这两个接口,这意味着我们的内部代码可以访问API中不公开的部分。 |
![]() |
2
5
不,这样不行。部分类在编译时合并:不能向已编译类添加成员。 根据代码的具体布局,更好的方法是提供一个内部setter:
如果需要能够从另一个程序集进行设置,但只能控制一个程序集,则可以使用InternalsVisibleToAttribute授予该程序集对内部setter的访问权限。 |
![]() |
3
2
我怀疑这是否可行。我可以想象部分类被编译到同一个程序集中,而不是由clr处理。你可能想看看
也许可以这样做
|
![]() |
4
0
即使您可以这样做,您的私有属性和字段仍然可以通过反射来发现。来自 MSDN page for GetProperty :
|
![]() |
5
0
设计API的技巧是考虑接口的类别(在本例中是抽象类)。请看一下此代码:
显然,您可以使用任何类/名称空间名称,这只是为了清楚地说明问题。正如您所看到的,所有类都是公共的,所以现在由您决定哪个DLL可用于您的客户机。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |