我想使用初始化列表实例化一个对象,并在同一命令中调用一个方法。
<?xml version='1.0' encoding='utf-8'?>
<Classes>
<Class Name="Class A">
<UniqueSourceIdentifier>1345</UniqueSourceIdentifier>
<Students>
<Student Name="Test1" Units="Unit A" />
<Student Name="<Choose One>" Units="<Choose One>" />
<Student Name="<Choose One>" Units="<Choose One>" />
<Student Name="<Choose One>" Units="<Choose One>" />
</Students> <!-- Added by edit -->
</Class> <!-- Added by edit -->
</Classes> <!-- Added by edit -->
该类如下:
string importantData = SearchOptions() {id = "10", className = "Fluffy"}.justAFunction();
我想保留使用初始化列表定义必要字段的灵活性,而将其他字段留空。
以后不需要类对象。仅需要该方法的返回参数。
答案 0 :(得分:1)
您几乎拥有它。您只需添加new
关键字来创建一个新对象,然后才能在其上调用方法:
string importantData = new SearchOptions {id = "10", className = "Fluffy"}.justAFunction();
由于您没有对新创建的对象设置任何引用,因此该行执行后它将立即超出范围,并将由垃圾回收引擎清除。
请注意,为了使这项工作有效,您的代码中还有其他一些问题需要解决:
justAFunction()
应该是可公开访问的(在您的示例中,未指定access修饰符,默认值为private
,因此它将不起作用)。 string void justAFunction
。由于要返回字符串,因此应删除void
。)还有其他一些建议:
public
)。PascalCase
(而不是camelCase
)。请牢记这些建议,您的课程将类似于:
class PageBase
{
public string Id { get; set; }
public string ClassName { get; set; }
public string Text { get; set; }
public string PartialText { get; set; }
public string XPath { get; set; }
public string CssModifier { get; set; }
}
class SearchOptions : PageBase
{
public SearchOptions()
{
Id = string.Empty;
ClassName = string.Empty;
Text = string.Empty;
PartialText = string.Empty;
XPath = string.Empty;
CssModifier = string.Empty;
}
public string JustAFunction()
{
Console.WriteLine(Id);
Console.WriteLine(ClassName);
return "ImportantReturn";
}
}
然后获取重要数据的调用如下:
string importantData = new SearchOptions {Id = "10", ClassName = "Fluffy"}.JustAFunction();
答案 1 :(得分:0)
替换“ string void justAFunction()” =>“公共字符串justAFunction()”。