4

我是 C# 新手。我正在通过一个教程。并展示了如何为变量创建访问器变体,如下所示;

public String var1 {

get {return "";}
set {someVar = value;}

} 

1.) 我不能像在 java 中创建的那样创建 getter 和 setter

public getVar() {return "";}
public setVar(String x){var=x;}

2.) valueC# 中使用了什么?

4

4 回答 4

9
  1. 可以,但使用起来更烦人,并且忽略了 C# 编码准则。

  2. value是设置器的隐式参数。它包含调用者将属性设置为的值。(通话右侧Property = something

请参阅文档

于 2012-12-31T17:28:03.097 回答
4
  1. 你当然可以。C# 中的属性就是为此而设计的语法糖。在引擎盖下,属性只不过是一个 get/set 方法。创建这两个方法更容易,它将这两个方法保存在源代码中的一个位置,它对调用者具有更简单的语法,并且除了获取/设置一个值之外什么都不做的属性仍然更容易生成。

  2. 这是一个关键字。它是传递给方法的值。如果有人进入obj.var1 = "abc";,那么value将是对 的引用"abc"

于 2012-12-31T17:28:29.947 回答
3

当然,你可以像 Java 那样做。但为什么?从调用者的角度来看,属性语法可以提供更好的体验。

value是一个伪变量,您可以使用它来设置您的内部变量等。它等同x于您的类似 Java 的示例。

于 2012-12-31T17:29:05.463 回答
1

是的,您可以像在 java 示例中一样创建 getter setter

int marks;
public void setMarks(int marks)
{
this.marks=marks;
}
public int getMarks()
{
return marks;
}
于 2012-12-31T17:31:14.860 回答