C#从一个类而不是另一个类访问方法
如果这个问题以前已经解决了,请提前道歉 我正在C#中创建一个小型库,希望类a能够修改类B的数据成员,其中类a和B存在于同一名称空间C.D中。这不是一个要完成的问题,尽管我希望名称空间C中的类E不能访问B的数据成员 namespace C.D { class B { modifier int a, b; public B() { } } class A { public A() {} public B DoStuff() { B b = new B(); b.a = 1; b.b = 2; return b; } } } namespace C { class E { static void Main(String[] args) { A a = new A(); B b = a.DoStuff(); } } } 命名空间C.D { B类 { 整型修饰语 A. B 公共图书馆B() { } } 甲级 { 公共A(){} 公共B DoStuff() { B=新的B(); b、 a=1;b.b=2; 返回b; } } } 命名空间C { E类 { 静态void Main(字符串[]参数) { A=新的A(); B=a.DoStuff(); } } } 在我上面的主方法中,我希望命名空间C.D中的每个类都能够修改B类对象的数据成员,尽管C.D命名空间之外的任何类都不能修改B类对象的数据成员 有没有办法通过更改名称空间结构、修饰符或实现特定的设计模式来做到这一点 提前谢谢大家。:) 如果愿意将C.D中的相关类移动到单独的程序集中,可以使用“内部”访问修饰符C#从一个类而不是另一个类访问方法,c#,methods,private-members,C#,Methods,Private Members,如果这个问题以前已经解决了,请提前道歉 我正在C#中创建一个小型库,希望类a能够修改类B的数据成员,其中类a和B存在于同一名称空间C.D中。这不是一个要完成的问题,尽管我希望名称空间C中的类E不能访问B的数据成员 namespace C.D { class B { modifier int a, b; public B() { } } class A
namespace C.D
{
class B
{
internal int a;
internal int b;
public B()
{
}
}
}
实现这一目标的一种方法是:
类B{…}
中)a
和B
)私有化
非常感谢你。我仔细阅读了内部修饰符,希望有一种不同的方法来解决我的问题。我想我只是不能偷懒:)不客气。还有其他的方法。例如,您可以为类B创建一个公开必要属性/方法的接口。需要处理内部细节的类将以某种方式提供具体实现(或其他接口)。但这种重组显然需要做更多的工作。 namespace C.D { class B { private int a, b; public B() { } class A { public A() { } public B DoStuff() { B b = new B(); b.a = 1; b.b = 2; return b; } } } } namespace C { class E { static void Main(String[] args) { A a = new A(); B b = a.DoStuff(); } } } namespace C.D { class B { protected int a, b; public B() { } } class A : B { public A() {} public B DoStuff() { B b = new B(); b.a = 1; b.b = 2; return b; } } } namespace C { class E { static void Main(String[] args) { A a = new A(); B b = a.DoStuff(); } } }