【发布时间】:2014-05-06 14:46:04
【问题描述】:
我确信以下问题的答案是基本的,但我对 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
}
}
【问题讨论】:
-
ClassB 构造函数采用双倍,它可以与 ClassA 一起使用
-
就是这样。我一直在想,因为 ClassA 都是双精度的,所以它本身就是双精度。实际上,很直接。 ClassA 是它通过的对象的类型,而不是双精度。感谢您的澄清。
标签: c# class properties arguments