2015-06-01 41 views
-2

我想使用setter和getter。當我調試時,值被設置,但是當我嘗試檢索時,它會得到空值。無法設置和獲取C#中的值

的Class1.cs

private string setMAX; 
     public string SETMax 
     { 
      get 
      { 
       return setMAX; 
      } 
      set 
      { 
       setMAX = value; 
      } 
     } 

private string value1; 
     public string MaxValue 
     { 
      get 
      { 
       return value1; 
      } 
      set 
      { 
       value1= value; 
      } 
     } 

Class2.cs

Class1.SETMax = Class1.value1; //This gets set 

Class3.cs //當我調試,首先將Class1.cs和Class2.cs完成,那麼它有Class3中。 cs

string max = Class1.SETMax; //I GET NULL here. 

我不知道我在哪裏錯了。可以請任何人解釋我嗎?

+1

請提供相當完整樣本和詳細的錯誤消息。即絕對沒有辦法知道'File1'代表的是什麼 - 類名,局部變量名,字段名,... –

+2

另外,你永遠不會顯示值*值是如何被設置爲'null' * ... –

+0

我猜你有不同的_instances_。顯示你如何設置值,以及你何時/如何評估它們, –

回答

0

您正在將File1作爲實例。您可能引用了不同的實例。您可能需要靜態屬性。

private static string setMAX; 
    public static string SETMax 
    { 
     get 
     { 
      return setMAX; 
     } 
     set 
     { 
      setMAX = value; 
     } 
    } 
0

我想你混淆了一些東西,所以讓從一開始

Class1.SETMax = Class1.value1; 
// for a start you are assigning a 
// private variable to a public one 
// via the Class definition I'm not even sure how that compiles. 

看一看看到這裏開始,如果這對你有意義

// This is a Class definition 
public class Class1 { 
public string SETMax {get; set;} 
public int MaxValue {get; set;} 
} 


// This is your application 
public class MyApp{ 

// this is a private field where you will assign an instance of Class1 
private Class1 class1Instance ; 

public MyApp(){ 
    //assign the instance in the constructor 
     class1Instance = new Class1(); 
} 

public void Run { 
    // now for some fun 

    class1Instance.SETMax = "Hello"; 
    Console.WriteLine(class1Instance.SETMax); // outputs "Hello" 
    var localInstance = new Class1(); 
    localInstance.SETMax = class1Instance.SETMax; 
    Console.WriteLine(localInstance.SETMax); // outputs "Hello" 

} 
} 
+0

將值賦給公共setter中的私有字段沒有任何問題。事實上,這是通常的模式。 – phoog

+1

@phoog這就是我正在談論的。 Class1.SETMax = Class1.value1;這只是錯誤的 – Peter

+1

彼得是對的,他試圖訪問Class2的Class1的私人領域。這是不可能的!! –