使用此的 C# 构造函数 [重复]
Posted
技术标签:
【中文标题】使用此的 C# 构造函数 [重复]【英文标题】:C# constructor using this [duplicate] 【发布时间】:2013-10-31 19:58:42 【问题描述】:有人可以解释构造函数中: this(123)
的含义吗?
public class MyObject
public MyObject(): this(123)
............
【问题讨论】:
你是否有MyObject(int variable)
构造函数?
你可以阅读构造函数here
为什么不用调试器单步调试代码,看看它做了什么?
你search了吗?我们已经有了一些可能对您有用的答案。
参见底部附近的Using Constructors,其中写道:构造函数可以使用this
关键字调用同一对象中的另一个构造函数。 ...
【参考方案1】:
因为你的类有另一个构造函数,它接受和int
作为参数。
public class MyObject
public MyObject()
: this(123)
public MyObject(int x) //something like this
见:Using Constructors (C# Programming Guide)
构造函数可以调用同一个对象中的另一个构造函数 使用
this
关键字。
【讨论】:
【参考方案2】:这意味着,您正在调用另一个具有固定值“123”的构造函数:
public class MyObject
public MyObject(): this(123)
public MyObject(int number)
意思是:无论何时调用new MyObject()
,不带任何参数,就等于调用new MyObject(123);
【讨论】:
“它等于调用 new MyObject(123);” 不是真的.. 默认构造函数中可能有其他构造函数中未执行的内容跨度> 【参考方案3】:这意味着 “在执行大括号之间的内容之前,执行带有参数123
的合适构造函数”
【讨论】:
【参考方案4】:提供的语法用于“构造函数链接”,即在当前构造函数的主体之前调用指定的构造函数(接受整数参数)。
【讨论】:
【参考方案5】:this 用于从同一类中的另一个构造函数调用一个构造函数。 请参阅这篇文章以获得更好的理解。
http://www.codeproject.com/Articles/7011/An-Intro-to-Constructors-in-C
【讨论】:
【参考方案6】:您有另一个接受 int 的构造函数(认为它可以是 long 或 double,或者任何其他 int 可以隐式转换为的)
public class MyObject
public MyObject(): this(123)
public MyObject(int num)
//do something with the num
【讨论】:
以上是关于使用此的 C# 构造函数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章