将数据从类中的一个方法返回到另一个方法
本文关键字:方法 一个 返回 另一个 数据 | 更新日期: 2023-09-27 18:00:30
感谢您帮助解决我刚刚提交的关于匿名类的问题。现在我明白了更多。这里还有一个例子:
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;
}
}
该类将仅用于两个方法之间的这一次数据传输。
我想你的意思是:返回新的XYZ(5,"Dave")无论如何,您的解决方案是可以的,但没有理由仅仅为了共享数据而创建一个新类。您可以使用hashtable/array/dictionary或任何最适合您的类来共享数据。如果你想对XYZ类做一些特别的事情,或者它有你想从中调用的方法,那么你必须创建一个新的类XYZ并返回它。但是,如果你只是想共享数据,请使用一个已经可以使用的数据结构。
这是可行的。它是否是最理想的很难说。由于您使用的是变量"ID"answers"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;
}
}
但是记住要为类使用正确的命名,这样你就知道它们的用途了。
是的,但是如果你的类有琐碎的属性,你可以考虑使用现有的.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;