1

在一些文档中,我看到了一些在没有声明类型的情况下编写的方法(例如 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;
    }

这些方法有什么作用。有什么区别| public ActorRecord() 和 public void/string ActorRecord() | ?

4

2 回答 2

4

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

它们被称为构造函数

public ActorRecord()问:和 public有什么区别void ActorRecord()

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

于 2013-07-02T16:27:54.333 回答
1

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

例如

Public Class Thing
{
   private int _amount;

    public Thing()
    {
       _amount = 5;
    }
}

如果我调用此代码:

var thing = new Thing();

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

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

thing.Thing()
于 2013-07-02T16:32:49.903 回答