C#类属性定义

时间:2015-11-20 18:12:35

标签: c#

如果我像下面的代码一样创建所有类属性结构成员,我会创建任何问题吗?

    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#。感谢您的任何反馈!

2 个答案:

答案 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

因此,总而言之,您的方法不一定错误,它根本不是最佳实践。因为我们鼓励最佳实践,所以我鼓励您不要使用您的方法。