这段代码是在创建getter吗?我正试图把它翻译成C#

本文关键字:翻译 代码 段代码 getter 创建 | 更新日期: 2023-09-27 17:57:33

Private Samples As Collection
Public Function Count() As Integer
    Count = Samples.Count
End Function

我正在尝试将这段代码翻译成C#。我也在努力理解这段代码的逻辑。我现在有这个代码,

Public int Count {get; set;}

这是用c#编写的。

这段代码是在创建getter吗?我正试图把它翻译成C#

否,如果它说Function,则表示函数。相反,如果它说Property,它将是一个属性,并且可以,那么(可选(只包含一个getter。

精确的等价物是:

public int Count() {
  return Samples.Count;
}

在VB中,当调用无参数函数时,括号是可选的,因此您可能会看到调用上述函数的代码只说Count而不是Count()

private Collection<object> Samples { get; set; }
public int Count() {
  return  Samples.Count;
}

这是作为属性实现的等价物(就像您尝试的那样(:

public int Count
{
    get
    {
        return Samples.Count;
    }
}

确切的等价物:作为一种正常的方法,你可以这样做:

public int Count()
{
    return Samples.Count;
}

但是,下面的代码创建了一个默认的setter和getter。在您的情况下不需要setter,getter也不会返回_count隐藏字段的值。但它返回列表的计数。

Public int Count {get; set;}

这些是自动实现的属性,相当于:

private int _count;
public int get_Count()
{
   return _count();
}
public void set_Count(int value)
{
   _count = value;
}