感谢您对我刚刚提交的有关匿名课程的问题的帮助。现在我了解更多。这里有一个例子:
public class abc {
public xx doAction() {
return ( new { ID = 5, Name= "Dave" } );
}
public void doStart() {
var a = doAction();
var b = a.ID;
var c = a.Name;
}
}
所以我说的最正确的方法是声明一个类XYX并像这样使用它:
public class abc {
public XYZ doAction() {
return ( new XYZ { ID = 5, Name= "Dave" } );
}
public void doStart() {
var a = doAction();
var b = a.ID;
var c = a.Name;
}
}
该类仅用于两种方法之间的这一数据传输。
答案 0 :(得分:1)
这样会有效。如果是最理想与否则很难说。由于您使用的是变量“ID”和“Name”,因此它表示您正在使用数据库中的域对象,如果是这样,您可能需要更多的类而不仅仅是这一个方法。
ABC班怎么样?那是什么课?因为你也可以这样做:
public class abc{
private int _id;
private string _name;
public void DoAction(){
_id = 5;
_name = "Dave";
}
public void DoStart(){
var b = _id;
var c = _name;
}
}
但请记住为您的课程使用正确的命名,这样您就可以了解它们的用途。
答案 1 :(得分:1)
是的,但是如果您的类具有普通的属性,您可以考虑使用现有的.Net类:
1)您可以考虑使用System.Tuple
(。NET 4.0),但不再拥有好的属性名称了:
var result = Tuple.Create(5, "Dave");
int id = result.Item1;
string name = result.Item2;
2)如果适用,您可以使用KeyValuePair
:
var result = new KeyValuePair<int, string>(5, "Dave");
int id = result.Key;
string name= result.Value;
答案 2 :(得分:1)
我认为你的意思是:返回新的XYZ(5,“戴夫”) 无论如何,你的解决方案是可以的,但没有理由创建一个新类只是为了共享数据。您可以使用哈希表/数组/字典或任何最适合您共享数据的类。如果你想对XYZ类做一些特别的事情,或者你想要从中调用它的方法,那么你必须创建一个新的类XYZ并返回它。但是,如果您只想共享数据,请使用已经可供您使用的数据结构。