我可以在constructor
中使用相同的类方法调用C#
吗?
示例:
class A
{
public A()
{
/* Do Something here */
}
public void methodA()
{
/* Need to call Constructor here */
}
}
答案 0 :(得分:2)
除了提供回答问题的答案之外,解决问题的方法是定义一个从构造函数和方法调用的初始化方法:
class A
{
private init()
{
// do initializations here
}
public A()
{
init();
}
public void methodA()
{
// reinitialize the object
init();
// other stuff may come here
}
}
很快,你不能打电话给构造函数,但你不必:)
答案 1 :(得分:1)
简短回答是No
:)
除了这些情况之外,你根本不能将构造函数称为简单方法:
1)您正在创建新对象var x = new ObjType()
2)从构造函数中调用另一个相同Type的构造函数。 E.g。
class ObjType
{
private string _message;
// look at _this_ being called before executing constructor body
public ObjType() :this("hello")
{}
private ObjType(string message)
{
_message = message;
}
}
3)从构造函数中调用基础构造函数。 E.g。
class BaseType
{
private string _message;
// should be at least protected
protected BaseType(string message)
{
_message = message;
}
}
class ObjType : BaseType
{
// look at _base_ being called before executing constructor body
public ObjType() :base("hello")
{}
}