C# 在C中访问内部结构/类#
我有一个类,它有一个内部结构/类(我已经决定了哪一个,如果这对我来说很重要的话,我将使用它),我希望内部类可以从其他类访问,但只能由外部类构造。 这可能吗C# 在C中访问内部结构/类#,c#,class-design,C#,Class Design,我有一个类,它有一个内部结构/类(我已经决定了哪一个,如果这对我来说很重要的话,我将使用它),我希望内部类可以从其他类访问,但只能由外部类构造。 这可能吗 谢谢不幸的是,您能得到的最接近的是内部构造函数。虽然外部类的private和protected成员可用于内部类,但事实并非如此。为什么不声明一个内部接口(或内部抽象类)使其不可实例化,然后声明一个实现该接口的私有内部类呢 差不多 using System; namespace test { class Outer {
谢谢不幸的是,您能得到的最接近的是
内部
构造函数。虽然外部类的private
和protected
成员可用于内部类,但事实并非如此。为什么不声明一个内部接口(或内部抽象类)使其不可实例化,然后声明一个实现该接口的私有内部类呢
差不多
using System;
namespace test {
class Outer {
public interface IInner {
void SayHello();
}
private class Inner : IInner {
public void SayHello() {
Console.WriteLine("Hello");
}
}
public IInner MakeInner() {
return new Inner();
}
}
class Program {
static void Main(string[] args) {
Outer x = new Outer();
x.MakeInner().SayHello();
}
}
}
这样,只有Outer
可以创建具体的internal
对象,而其他类必须调用MakeInner
方法。请注意,通过这种方式,您还可以对同一程序集中的类强制执行约束。internal似乎可以工作,我希望只有外部类可以访问,但这已经足够了。谢谢