为什么这个类在类本身中实例化自己的对象
本文关键字:实例化 自己的 对象 为什么 | 更新日期: 2023-09-27 17:59:44
关于接口,我看到了以下代码示例。为什么这个类在main方法中实例化自己的对象?这是C#和Java中有效的理论或代码约定吗?(编译器没有抱怨……但我很好奇)
using System;
interface IParentInterface
{
void ParentInterfaceMethod();
}
interface IMyInterface : IParentInterface
{
void MethodToImplement();
}
class InterfaceImplementer : IMyInterface
{
static void Main()
{
InterfaceImplementer iImp = new InterfaceImplementer();
iImp.MethodToImplement();
iImp.ParentInterfaceMethod();
}
public void MethodToImplement()
{
Console.WriteLine("MethodToImplement() called.");
}
public void ParentInterfaceMethod()
{
Console.WriteLine("ParentInterfaceMethod() called.");
}
}
方法'main'是静态的,因此它不引用任何InterfaceImplementer实例。要调用实例方法,需要创建一个实例。
据我所知,名为"main"的静态方法并不是任何已知的约定。
如果尝试使用singleton,则主方法应替换为静态构造函数,并由私有InterfaceImplementer变量支持
将一个将调用两个方法的方法命名为"Main"似乎不是一个好的名称选择。
编辑以回答评论
为了完全理解singleton模式,我强烈建议阅读此
名为"Main"的方法不能帮助调用方理解该方法正在执行的操作。我会选择"运行"、"初始化"、"调用"。
很可能来自教程。
该代码将作为控制台应用程序运行,该应用程序必须具有静态Main
方法,该方法是程序执行的起点。
因此,当您使用该类运行程序时,它将测试这两个方法
类在main方法中创建其自身的实例,因为它本身不是静态类。
如果像通常的情况一样,有一个单独的program
类和static main
方法,那么就不会那么令人困惑了。