c# -如何传递ClassA'的属性作为ClassB'的参数

本文关键字:ClassB 参数 属性 何传递 ClassA | 更新日期: 2023-09-27 17:53:56

我相信下面的答案是基本的,但我的c#知识也是如此。我已经搜索了周围,无法找到一个答案,在我的应用程序工作。我有以下代码(从我的实际代码中简化,在记事本中,所以我希望我没有把语法弄得太乱)。因为我不能让它工作,我认为有一个错误的地方。我的最终代码要复杂得多。我希望能够让dataA和dataB类携带单独的属性集,因为它们各自代表不同的对象。希望能了解更多。谢谢你,提前。

我得到以下错误:

'double'不包含'prop1'的定义,并且无法找到接受'double'类型的第一个参数的扩展方法'prop1'(您是否缺少using指令或程序集引用?)

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
    }
}

c# -如何传递ClassA'的属性作为ClassB'的参数

修改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; }
}