将数据从类中的一个方法返回到另一个方法

本文关键字:方法 一个 返回 另一个 数据 | 更新日期: 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;