如何在 c# 中使用方法(如果可能)实例化 class?
How can I instantiate a class with a method (if possible) in c#?
假设您有某种控制台应用程序游戏,并且在游戏中您创建了一个对象,该对象将拥有自己的对象 class。当游戏可能仍然是 运行.
时,您如何使用方法或函数之类的东西创建 class 的实例?
我已经在互联网上找遍了,几个星期后仍未找到任何东西。通常,我会为 class 创建一个数组并像这样向它添加新实例。
class MyClass
{
//fields and methods
}
class Program
{
static void Main(string[] args)
{
MyClass[] myClasses = new MyClass[16];
myClasses.SetValue(new MyClass(), 0);
}
}
但这感觉笨拙且效率低下。我希望我能尽快解决这个问题。
您是否尝试这样做:
var myClasses = new MyClass[16];
myClasses[0] = new MyClass();
有很多方法可以做到这一点。最常见和接受的方式可能是 FactoryPattern
.
创建你的工厂:
public static class MyClassFactory
{
public static MyClass CreateNew() {
return new MyClass();
}
public static MyClass[] CreateRange(int amount) {
var myArr = new MyClass[amount];
for (int i = 0; i < amount; i++)
{
myArr[i] = new MyClass();
}
return myArr;
}
}
然后只需在您的代码中调用它:
class Program
{
static void Main(string[] args)
{
MyClass[] myClasses = MyClassFactory.CreateRange(16);
}
}
假设您有某种控制台应用程序游戏,并且在游戏中您创建了一个对象,该对象将拥有自己的对象 class。当游戏可能仍然是 运行.
时,您如何使用方法或函数之类的东西创建 class 的实例?我已经在互联网上找遍了,几个星期后仍未找到任何东西。通常,我会为 class 创建一个数组并像这样向它添加新实例。
class MyClass
{
//fields and methods
}
class Program
{
static void Main(string[] args)
{
MyClass[] myClasses = new MyClass[16];
myClasses.SetValue(new MyClass(), 0);
}
}
但这感觉笨拙且效率低下。我希望我能尽快解决这个问题。
您是否尝试这样做:
var myClasses = new MyClass[16];
myClasses[0] = new MyClass();
有很多方法可以做到这一点。最常见和接受的方式可能是 FactoryPattern
.
创建你的工厂:
public static class MyClassFactory
{
public static MyClass CreateNew() {
return new MyClass();
}
public static MyClass[] CreateRange(int amount) {
var myArr = new MyClass[amount];
for (int i = 0; i < amount; i++)
{
myArr[i] = new MyClass();
}
return myArr;
}
}
然后只需在您的代码中调用它:
class Program
{
static void Main(string[] args)
{
MyClass[] myClasses = MyClassFactory.CreateRange(16);
}
}