簡體   English   中英

C#類屬性定義

[英]C# class property definitions

如果我使所有類屬性結構成員像下面的代碼一樣,我會創建任何問題嗎?

    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#是一種使用自動屬性或具有底層支持字段的屬性的語言,它被認為是最佳實踐,如果您遵循此結構,也是最佳可維護的。

屬性也有很多優點 - 在此鏈接下的更多信息:
MSDN Property Tutorial

因此,總而言之,您的方法不一定錯誤緩慢 ,這根本不是最佳實踐 因為我們鼓勵最佳實踐 ,所以我鼓勵您不要使用您的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM