ASP.NET C#将对象传递给方法
问题描述:
如何将对象从一种方法传递给另一种方法? 从下面的代码,我想从xmlReader()
通过newEvent
到outputData()
ASP.NET C#将对象传递给方法
public class Event
{
public int ID {get; set;}
}
public void xmlReader()
{
Event newEvent = new Event;
newEvent.ID = 56;
outputData(newEvent);
}
public void outputData(object theEvent)
{
MainContainerDiv.InnerHtml = theEvent.ID;
}
谢谢 乔丹
答
你已经通过它,但你遇到的唯一问题是这样的:
public void outputData(object theEvent)
{
MainContainerDiv.InnerHtml = ((Event)theEvent).ID;
}
或
public void outputData(Event theEvent)
{
MainContainerDiv.InnerHtml = theEvent.ID;
}
你必须要么投了object
特定类型(第一溶液)或设置特定类型的参数(第二溶液)。如果同一个方法被许多不同的调用者调用,这当然是一个更大的问题。在这种情况下,更可靠的方法是检查参数类型:
public void outputData(object theEvent)
{
if (theEvent is Event)
{
MainContainerDiv.InnerHtml = (theEvent as Evenet).ID;
}
// process others as necessary
}
答
变化
public void outputData(object theEvent)
到
public void outputData(Event theEvent)
答
我认为你的意思是“我怎么把theEvent从对象回到Event
“,在这种情况下:
public void outputData(object theEvent)
{
MainContainerDiv.InnerHtml = ((Event)theEvent).ID;
}
更好的选择将改变outputData方法签名,因此,它需要一个事件参数,而不是一个对象参数:
public void outputData(Event theEvent)
{
MainContainerDiv.InnerHtml = theEvent.ID;
}
如果由于某种原因,你需要通过theEvent
为object
,但是你可能需要内outputData
多次使用它,有一个在第一种方法的变化:
public void outputData(object theEvent)
{
var event = (Event)theEvent;
MainContainerDiv.InnerHtml = event.ID;
//
// You can now use "event" as a strongly typed Event object for any further
// required lines of code
}
答
您正确地传递对象,但传球达铸造....
如果OutputData将只会接受类型事件的对象,则对象的界定及将b
public void outputData (Event theEvent) {
......
}
的建议的工作。感谢大家的快速和有益的回应! – jtlowe 2011-02-16 17:28:58