如果我像下面的代码一样创建所有类属性结构成员,我会创建任何问题吗?
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#。感谢您的任何反馈!
答案 0 :(得分:10)
是。问题将是不必要的代码。您可以像这样缩短代码,它仍然可以正常运行:
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; }
}
答案 1 :(得分:0)
老实说,我认为你的方法不会产生任何问题。如果你的属性有一个小的额外结构,速度和内存绝对不是问题 - 除非你在只有64K Ram左右的某些设备上运行你的程序,但我认为你没有。 所以对于你的问题 - 如果你知道你正在做什么以及访问正确的结构变量,那么你的代码就可以了。
但是,如上所述,您的方法远非最佳实践 C#是一种使用自动属性或具有底层支持字段的属性的语言,它被认为是最佳实践,如果您遵循此结构,也是最佳可维护的。
属性也有很多优点 - 在此链接下的进一步信息:
MSDN Property Tutorial
因此,总而言之,您的方法不一定错误或慢,它根本不是最佳实践。因为我们鼓励最佳实践,所以我鼓励您不要使用您的方法。