创建一个获取变量值的函数
本文关键字:获取 变量值 函数 一个 创建 | 更新日期: 2023-09-27 18:07:20
我应该更喜欢直接从其他类(int number = something.number;
)获取变量,还是应该使用函数来获取该数字(如下面的示例)?有什么区别呢?
class someclass
{
private int number;
public float GetSomething()
{
return number;
}
}
class otherclass
{
someclass something;
private void somefunction()
{
int number = something.GetSomething();
}
}
使用字段引用和getter方法的区别在于,如果您创建了一个您希望"客户端代码"使用的方法,那么您总是可以稍后更改方法代码,而客户端将不必更改其代码。如果您使用字段,那么客户端将不得不更新他们的代码,从使用字段到使用方法,如果您决定,例如,在方法中进行验证。因此,简而言之,对于,使用getter方法是更好的实践。然而,在像c#这样的语言中,您也可以使用属性,其中的行为类似于方法,但看起来像字段,因此您可以两全其美:良好的语法(字段)和未来的保证(方法)。
对于这种类型的数据,您最好使用属性:
class someclass
{
private int number;
public int Number
{
get {return number;}
set {number = value;}
}
}
则可以使用某些类。
直接访问类外的类变量不是一个好的做法,因此强烈建议使用方法(也包括属性)。当不能直接访问您的类变量时,其他类可以使用它,并且无论何时更改类的内部结构,您都可以轻松地完成。考虑你的类:
class someclass
{
// it's a field
private int number;
// it's a property
public int Number
{
get{return this.number;}
}
//or you can use method
}
EDIT:如果过了一段时间,你发现最好把number
的类型改为int?
,你可以这样做,因为从来没有在类外任何人使用number
,所以你可以简单地改变数字和改变你的属性
class someclass
{
private int? number;
public int Number
{
get{return this.number.Value;}
}
//or you can use method
}
公开字段是不好的做法,因为它不如公开方法或属性广泛。例如,您希望根据其他字段的值更改此字段的计算逻辑。这两种方法都可以实现,但如果使用方法或属性,实现起来会更容易、更清晰。