2014-03-27 31 views
0

我相信以下答案是基本的,但我的C#知識也是如此。我搜索了四周,無法找到適用於我的應用程序的答案。我有以下內容(從我的實際代碼中簡化,記事本中,所以我希望我沒有太多的語法)。由於我無法實現它,所以我認爲某處存在錯誤。我的最終代碼更復雜。我希望能夠讓dataA和dataB類攜帶不同的屬性集,因爲它們每個都代表不同的對象。希望瞭解更多。謝謝你,提前。C# - 如何傳遞ClassA的屬性作爲ClassB的參數?

我收到以下錯誤:

'double' does not contain a definition for 'prop1' and no extension method 'prop1' accepting a first argument of type 'double' could be found (are you missing a using directive or an assembly reference?)

public class ClassA 
{ 
    // Class constructor 
    public ClassA(double arg1, double arg2) 
    { 
     prop1 = arg1; 
     prop2 = arg2; 
    } 

    // Class properties 
    public double prop1 { get; set; } 
    public double prop2 { get; set; } 
} 

public class ClassB 
    { 
     // Class constructor 
     public ClassB(double arg3) 
     { 
      var1 = arg3.prop1; 
      var2 = arg3.prop2; 
     } 

     // Class properties 
     public double var1 { get; set; } 
     public double var2 { get; set; } 
    } 

class Program 
{ 
    static void Main(string[] args) 
    { 
     ClassA dataA = new ClassA(1.0, 2.0); 
     ClassB dataB = new ClassB(dataA); 
     // end result: dataB.var1 and dataB.var2 
    } 
} 
+0

ClassB的構造走的是一條雙它將與ClassA的 – kerry

+0

這是它的工作。我一直在想,因爲ClassA都是雙重的,它本身就是雙重的。其實很簡單。 ClassA是它正在傳遞的對象的類型,而不是double。感謝您的澄清。 – baconcow

回答

2

修改ClassB的的構造方法來ClassA的:

public class ClassB 
{ 
    // Class constructor 
    public ClassB(ClassA arg3) 
    { 
     var1 = arg3.prop1; 
     var2 = arg3.prop2; 
    } 

    // Class properties 
    public double var1 { get; set; } 
    public double var2 { get; set; } 
} 
相關問題