[英]How to display the return value from a non static method in C#
我正在使用一个非静态类,并且想要在控制台窗口中显示方法的答案。
当我将方法更改为static并从Main()调用时,出现错误,指出“对象引用未设置为对象的实例”。
根据本文,我需要使用“ new”关键字创建对象的实例。 我的理解是,您必须为类而不是方法创建对象。
http://msdn.microsoft.com/en-us/library/ms173110.aspx
因此,我创建了一个新对象,但它不返回结果。
GetSingleAsset Foo = new GetSingleAsset();
Console.WriteLine(Foo);
输出仅给出方法的名称。
如何查看此非静态方法的返回值?
public Asset GetSingleAsset()
{
var memberId = Oid.FromToken("Member:20", _context.MetaModel);
var query = new Query(memberId);
var nameAttribute = _context.MetaModel.GetAttributeDefinition("Member.Name");
var emailAttribute = _context.MetaModel.GetAttributeDefinition("Member.Email");
query.Selection.Add(nameAttribute);
query.Selection.Add(emailAttribute);
var result = _context.Services.Retrieve(query);
var member = result.Assets[0];
LogResult(member.Oid.Token,
GetValue(member.GetAttribute(nameAttribute).Value),
GetValue(member.GetAttribute(emailAttribute).Value));
return member;
}
您需要这样做:
NameOfYourClass instanceOfClass = new NameOfYourClass();
Console.WriteLine(instanceOfClass.NameOfMethod());
“方法到控制台窗口的答案”(在这种情况下是一个对象),并且如果您尝试将Console.WriteLine()作为一个对象,则只会看到写到控制台的对象类型,而不是其值。
是的,Robert是正确的-GetSingleAsset()是一个方法,而不是一个类-因为它返回的值为'Asset'类型的值-类的构造函数将没有返回值-如果您想查看Patrick的信息,则是正确的(通过控制台输出)该特定方法的返回结果是什么-如果它不是对象。
但是,由于“资产”本身就是对象,因此,如果您仅做一个Console.WriteLine(Asset),它将显示资产的类型偏离..而不是其值。 例如,将打印“ System.Collection.Asset”,而不打印您感兴趣的值。
您将需要在类实例化时在代码中放置一个断点,并通过Locals Window查看“ Asset”类型所包含的值,并准确打印出您感兴趣的值...可能是什么值您实际上感兴趣的是包含在Asset类内的另一个对象中..也许这里有一个for循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.