【问题标题】:Writing method without declaring type of that在不声明类型的情况下编写方法
【发布时间】:2013-07-02 16:25:45
【问题描述】:

在一些文档中,我看到了一些在没有声明类型的情况下编写的方法(例如 void、string、int 等......)。像这样:

public ActorRecord()
    {
        ActorMovies = new List<MovieActorRecord>();
    }

    private readonly ITaxonomyService _taxonomyService;
    private readonly IContentManager _contentManager;

    public MovieFeatureEventHandler(ITaxonomyService taxonomyService, IContentManager  contentManager)
    {
        _taxonomyService = taxonomyService;
        _contentManager = contentManager;
    }

这些方法有什么作用。 有什么区别|公共 ActorRecord() 和公共 void/字符串 ActorRecord() | ?

【问题讨论】:

    标签: c# methods


    【解决方案1】:

    您可能已经注意到,这些方法也与它们所在的类(或结构)具有完全相同的名称。

    他们被称为constructors

    问:public ActorRecord() 和公开的void ActorRecord() 有什么区别?

    答:在class ActorRecord {} 中,第一个是构造函数,第二个是语法错误。

    【讨论】:

    • 哦,是的,它们的类名是相同的。感谢您的帮助。
    【解决方案2】:

    所讨论的方法称为构造函数。当您创建对象的新实例时,会调用构造函数方法中的代码来“设置”相关对象。

    例如

    Public Class Thing
    {
       private int _amount;
    
        public Thing()
        {
           _amount = 5;
        }
    }
    

    如果我调用此代码:

    var thing = new Thing();
    

    然后 a 将获得一个新的事物,其 _amount 变量为 '5'

    如果你添加 void ,它将成为一个普通方法并像其他方法一样被调用:

    thing.Thing()
    

    【讨论】:

    • 但是,不允许方法(不是构造函数)与声明它的类(或结构)具有完全相同的名称。
    猜你喜欢
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2021-12-04
    • 2021-11-30
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多