C#类属性定义
本文关键字:定义 属性 | 更新日期: 2023-09-27 18:23:36
如果我像下面的代码那样使所有类属性成为结构成员,我会产生任何问题吗?
private struct Properties
{
public int p1;
public int p2;
}
private Properties P;
public int p1 { get { return P.p1; } set { P.p1 = value; } }
public int p2 { get { return P.p2; } set { P.p2 = value; } }
多年来,我一直在VB中做类似的事情,但速度并不重要。现在,我才刚刚开始在速度很重要的实时项目中使用C#。感谢您的反馈!
是。问题将是不必要的代码。你可以像这样缩短你的代码,它的功能仍然是一样的:
public int p1 { get;set; }
public int p2 { get;set; }
如果你想在getter或setter上设置断点,你可以使用一个支持私有字段,比如:
private int _p1;
public int P1
{
get { return _p1; }
set { _p1 = value; }
}
private int _p2;
public int P2
{
get { return _p2; }
set { _p2 = value; }
}
老实说,我认为您的方法不会产生任何问题。如果你的属性中有一个小的额外结构,速度和内存绝对不是问题——除非你在只有64K Ram左右的设备上运行程序,但我认为你没有
因此,对于您的问题,如果您知道自己在做什么并访问正确的结构变量,那么您的代码就可以了。
然而,如上所述,您的方法远非最佳实践
C#是一种广泛使用Auto Properties或具有底层支持字段的Properties的语言,如果遵循这种结构,它被认为是最佳实践,也是最佳可维护性。
属性也有很多巧妙的优势-此链接下的更多信息:
MSDN属性教程
因此,总之,您的方法不一定是错误或缓慢,它根本不是最佳实践。因为我们鼓励最佳实践,所以我鼓励您不要使用您的方法。