我可能完全错过了这里的重点,但是......
如何将“var”传递给另一个方法?
(我正在使用 linq 将 XML 加载到可枚举对象列表中)。
我有不同的对象类型(具有不同的字段),但无论使用哪个对象,我的过程的最后一步都是相同的。
XNamespace xmlns = ScehmaName;
var result = from e in XElement.Load(XMLDocumentLocation).Elements(xmlns + ElementName)
select new Object1
{
Field1 = (string)e.Element(xmlns + "field1"),
Field2 = (string)e.Element(xmlns + "field2")
};
var result2 = Enumerable.Distinct(result);
对于要处理的不同类型的 XML 文件,此代码会有所不同。但随后我想迭代代码以检查各种问题:
foreach (var w in result2)
{
if (w.CheckIT())
{
//do something
}
}
我想要的是基类中方法的最后一步,我可以将“var”变量从每个子类传递到其中。
的类型w
is Object1
(在上面写的代码中)。您可以将鼠标悬停在var
关键字并查看 Visual Studio 向您显示的工具提示。
从你的问题中很难看出,但听起来像是CheckIt
方法是在基类型上定义的Object1
。如果是的话,你可以编写你的方法来检查它们
protected void CheckAll<T>(IEnumerable<T> result) where T : <base type with CheckIt method>
{
foreach(var w in result)
{
if(w.CheckIt())
{
// do something
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)