ASP.NET C#将对象传递给方法

ASP.NET C#将对象传递给方法,c#,asp.net,C#,Asp.net,如何将对象从一个方法传递到另一个方法? 从下面的代码中,我想将newEvent从xmlReader()传递到outputData() 谢谢,, 乔丹你已经通过了,但你唯一的问题是: public void outputData(object theEvent) { MainContainerDiv.InnerHtml = ((Event)theEvent).ID; } 或 您必须将对象强制转换为特定类型(第一种解决方案)或将特定类型设置为参数(第二种解决方案)。如果同一个方法被许多不

如何将对象从一个方法传递到另一个方法? 从下面的代码中,我想将
newEvent
xmlReader()
传递到
outputData()


谢谢,,
乔丹

你已经通过了,但你唯一的问题是:

public void outputData(object theEvent)
{
    MainContainerDiv.InnerHtml = ((Event)theEvent).ID;
}

您必须将
对象
强制转换为特定类型(第一种解决方案)或将特定类型设置为参数(第二种解决方案)。如果同一个方法被许多不同的调用者调用,这当然是一个更大的问题。在这种情况下,更可靠的方法是检查参数类型:

public void outputData(object theEvent)
{
    if (theEvent is Event)
    {
        MainContainerDiv.InnerHtml = (theEvent as Evenet).ID;
    }
    // process others as necessary
}

你已经通过了,但你唯一的问题是:

public void outputData(object theEvent)
{
    MainContainerDiv.InnerHtml = ((Event)theEvent).ID;
}

您必须将
对象
强制转换为特定类型(第一种解决方案)或将特定类型设置为参数(第二种解决方案)。如果同一个方法被许多不同的调用者调用,这当然是一个更大的问题。在这种情况下,更可靠的方法是检查参数类型:

public void outputData(object theEvent)
{
    if (theEvent is Event)
    {
        MainContainerDiv.InnerHtml = (theEvent as Evenet).ID;
    }
    // process others as necessary
}
改变

改变

我认为您的意思是“如何将事件从对象变回
事件”
,在这种情况下:

public void outputData(object theEvent)
{
    MainContainerDiv.InnerHtml = ((Event)theEvent).ID;
}
更好的选择是更改outputData的方法签名,以便它采用事件参数,而不是对象参数:

public void outputData(Event theEvent)
{
    MainContainerDiv.InnerHtml = theEvent.ID;
}
如果出于某种原因,您需要将事件作为对象传递,但可能需要在输出数据中多次使用,则第一种方法有一个变体:

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
}
我认为您的意思是“如何将事件从对象变回
事件”
,在这种情况下:

public void outputData(object theEvent)
{
    MainContainerDiv.InnerHtml = ((Event)theEvent).ID;
}
更好的选择是更改outputData的方法签名,以便它采用事件参数,而不是对象参数:

public void outputData(Event theEvent)
{
    MainContainerDiv.InnerHtml = theEvent.ID;
}
如果出于某种原因,您需要将事件作为对象传递,但可能需要在输出数据中多次使用,则第一种方法有一个变体:

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) {
  ......
}

您正确传递对象,但传递是通过向上投射

如果OutputData只接受事件类型的对象,则对象的定义将为b

public void outputData (Event theEvent) {
  ......
}

这些建议奏效了。感谢大家的快速和有益的回应!这些建议奏效了。感谢大家的快速和有益的回应!