public class Animal
{
public void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
动物a =新动物();
在实例化对象时是否真的需要使用新的keyow?
我们可以这样做吗
动物a =动物();
这里的任何帮助都会很棒。
答案 0 :(得分:1)
没有。您始终可以使用Activator - Activator.CreateInstance。不确定你是否真的会发现它比新的更简单。
另外,查看您的示例,您可能希望将其设为static,因为您的方法不会对您的类的特定实例执行操作。您可以直接拨打Animal.Eat()
。
public static class Animal
{
public static void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
答案 1 :(得分:1)
要实例化对象是,您始终需要使用new。话虽这么说,如果因为某种原因你不喜欢它,你可以在你的类中创建一个包含new关键字的静态加载方法。这并没有改变你使用new的事实,但它确实隐藏了它。像这样:
public class Animal
{
private Animal(){}
public static Animal Load()
{
return new Animal();
}
public void Eat()
{
Console.WriteLine("Animal eats for living.");
}
}
或者你可以创建一个静态类。
答案 2 :(得分:0)
您可能已经考虑到了C ++,对于实例化具有或不具有new的对象之间存在差异。
这不适用于C#。 “动物”始终是对象的引用。如果C#语法允许写“Animal a = Animal();”,那可能与“Animal a = new Animal();
完全相同