【发布时间】:2020-04-18 22:23:19
【问题描述】:
我正在做一个项目,该项目要求我只通过它自己的程序集实例化(“新”)一个类,而不是其他程序集。这可能吗?
我尝试使用抽象,但这意味着我无法在任何地方实例化它。
示例: 以下类在同一个项目/程序集中。
public class Banana
{
public Banana()
{
...
}
}
public class Food.
{
public static Banana InstantiateBanana()
{
Banana banana = new Banana();//<=====How can you instantiate it inside the same assembly? I don't want other assemblies to instantiate it.
...
return banana;
}
}
【问题讨论】:
-
删除抽象并使实例化方法静态。
-
您在寻找
protected成员访问修饰符吗?也许看看Accessibility Levels? -
感谢您这么快回复! :) 我编辑了代码,但它仍然没有工作...... :(
-
@MinijacksaysreinstateMonica 我应该在哪里使用受保护的修饰符?继承类不受保护吗?
-
当您说“其他程序集”时,您究竟是什么意思?如果您将构造函数设为私有,但保持其他所有内容不变,则没有其他内容可以在香蕉上调用 new,但仍然可以通过实例化方法创建一个。
标签: c# class abstract instantiation