C#需要解释涉及类的变量的事情

时间:2018-05-04 03:15:35

标签: c# visual-studio

所以它说:

var string = "cancer cervical diane mortality cervical cancer cervical diane sea";
var regex = /(.+)\s\1/;
console.log(string.match(regex));

相当于......

public int HoursWorked { get; set; }

我有两个问题......

  1. 如何通过简单地调用“HoursWorked”来简单地执行“hWorked”操作?

  2. 我也不完全明白“价值”的价值是什么

  3. 感谢您的帮助!

2 个答案:

答案 0 :(得分:7)

首先,一些术语: HoursWorked属性hWorked字段

第一个示例称为自动实现的属性。在这种情况下,编译器会生成一个对您不可见的私有支持字段。

value是一个C#语言关键字。它是您设置属性时传入的值。您无法更改它,只能分配它。因此,如果您指定HoursWorked = 10;,则value等于10.

通常,如果您不需要在属性中添加任何其他逻辑(例如,验证允许的值),则应使用自动实现的属性。它更干净,更易于阅读,更易于维护。

答案 1 :(得分:1)

<强> MSDN

  

属性结合了字段和方法的各个方面。给用户   一个对象,一个属性似乎是一个字段,访问该属性   需要相同的语法。对于类的实现者,属性是   一个或两个代码块,表示get访问器和/或集合   访问。 get访问器的代码块在执行时执行   阅读财产;设置访问器的代码块在执行时执行   该属性被赋予一个新值。没有一套的财产   访问者被认为是只读的。没有get访问者的属性是   被认为是只写的。具有两个访问器的属性是   读写。

private int hWorked; // the name field. It will be used internally to hold to value.
public int HoursWorked // the Name property. User will use with object of class.
{
    get
    {
        return hWorked;
    }
    set
    {
        hWorked = value; //  "value" is the actual value (here int) which is assigned by user while accessing this property from somewhere in other class or same class.
    }
}

所以,HoursWorked是一个属性。 hWorked是一个字段。

<强> 1。如何做更简单的命令,简单地调用&#34; HoursWorked&#34;带来&#34; hWorked&#34;进去吗?

它被称为自动实现属性,编译器生成一个不可见的后备字段。

<强> 2。我也不完全明白&#34;价值&#34;的价值。意味着

&#34;值&#34;是用户分配/设置的实际值(此处为int)。例如:用户也会分配HoursWorked = 50;,然后分配value = 50

检查msdn了解详情。