我想知道是否有任何方法可以在类中实现get方法?
public class Element: IWebElement
{
IWebElement realElement;
//Question point is this get{}
//Everytime I access the instance of this class this get would be called
get
{
//This 'realElement' is not present yet
//So I cannot initialize it
//But when the properties of this class are accessed
//I'm telling the get method that it's time to initialize 'realElement'
realElement = webDriver.FindElement(...);
Visible = element.Visible;
return this;
}
public bool Visible {get; set;}
}
public class AnotherClass()
{
public void AccessElement()
{
Element element = new Element();
if(element.Visible) // At this point the 'element'
{
}
}
}
使用方法: 我不能用自己的get来初始化每个属性,因为它们太多了
答案 0 :(得分:1)
在我的旧答案中添加了这个新答案,因为我试图回答你原来的代码,但现在却完全不同了。啧。
用法:我不能用自己的get初始化每个属性,因为 他们太多了
所以,这实际上是而不是你通常使用get
的方法。 Get主要用于访问私有方法,或者使用一些逻辑,通常用于数据绑定,例如MVVM等。
我认为你的措辞不准确。你说
每次我访问此类的实例时,此get都将被称为
但根据你的代码,你的意思是“每次我实例化一个类”。你真正需要的唯一东西是构造函数。
public class Element: IWebElement
{
IWebElement realElement;
public bool Visible {get; set;}
public Element()
{
realElement = webDriver.FindElement(...);
Visible = element.Visible;
}
}
旧回答:
您可能正在考虑Singleton模式
编辑:这最初回答了原始问题的代码,如下所示。
public class Element()
{
//Question point is this get{}
//Everytime I access the instance of this class this get would be called
get{
return this;
}
public string AnyProperty {get; set;}
}
public class AnotherClass()
{
public void AccessElement()
{
Element element = new Element();
element.AnyProperty = "";
}
}
答案 1 :(得分:0)
您可以使用构造函数,因此每次创建对象实例时都会调用它。
public class Element()
{
public Element(){
AnyProperty = ""; //some value initialize
}
}