簡體   English   中英

從另一個類調用非靜態變量

[英]Calling a non-static Variable from another Class

我想從另一個類調用非靜態變量。 如果我將其設置為靜態,則會影響其他代碼。

我有兩個類Harvest_Client和Harvest_Project。

在我的Harvest_Project類中,

public int _client_id{ get; set;}

我只想在Harvest_Client類中做的是

public int _id = Harvest_Project._client_id;

我應該怎么做?

首先,您應該重命名屬性(它不是變量)以符合.NET命名約定,例如

public int ClientId { get; set; }

接下來,您需要一個HarvestProject 實例 (重新命名)。 不要只創建一個新實例-您需要正確的實例,一個您感興趣的客戶ID實例。我們無法告訴您它是哪個實例-但是,如果您還沒有一個HarvestProject實例,一方面,您應該確定如何指定所需的客戶端ID。

這樣想:如果我要問你“一個人多大?” 你自然想知道我說的是哪個人。 這里完全一樣。

也許將引用傳遞給類將滿足您的需求:

public class Harvest_Project
    {
        public string Name { get; set; }
        public int clientId { get; set; }
    }

    public class Harvest_Client
    {
        private Harvest_Project MyInstance;

        private int myid;

        public int MyId
        {
            get
            {
                return myid;
            }
            private set
            {
                MyId = value;
            }
        }
        public Harvest_Client(Harvest_Project cls)
        {
            MyInstance = cls;
            MyId = cls.clientId;//since class reference present no 
                                //need for the property.
                                //its just here to show if in your
                                //project you really just need ID
                                //in this example its redundant
        }

    }

根據您要執行的操作,可以創建Harvest_Project對象列表或更好的字典,如果存在各種類型的“項目”,則可以將它們全部放置在根據指定鍵進行分類的字典中。

我想建議您考慮一下以下屬性聲明public int ClientId {get; private set;"} public int ClientId {get; private set;"} ,如果確實需要,它允許您禁止從第三方代碼中設置此變量。否則,您將擁有普通的全局變量

暫無
暫無

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

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