как разобрать для отправителя объекта - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть этот метод, и я понятия не имею, что отправитель объекта отправляет

void xTreve(object sender, Microsoft.SilverlightMediaFramework.Core.CustomEventArgs<Microsoft.SilverlightMediaFramework.Core.Media.PlaylistItem> e)
{
}

как мне проверить, что содержит отправитель объекта

Ответы [ 3 ]

2 голосов
/ 01 декабря 2011

Я пойму, что ваш вопрос направлен на определение типа sender, чтобы вы могли с ним работать.

Имея это в виду, вам сначала нужно получитьвведите sender, затем вы можете привести его соответствующим образом, чтобы вы могли работать с ним.

Например, вы можете сделать следующее в вашем методе:

if (sender is TypeA)
{
    var iAmA = (TypeA)sender;

    // do something A-ish with sender
}
else if (sender is TypeB)
{
    var iAmB = (TypeB)sender;

    // do something B-ish with sender
}
else
{
    // do something else
}

В качестве альтернативыделает то же, что и предыдущий:

Type type = sender.GetType();

if (type == typeof(TypeA))
{
    var iAmA = (TypeA)sender;

    // do something A-ish with sender
}
else if (type == typeof(TypeB))
{
    var iAmB = (TypeB)sender;

    // do something B-ish with sender
}
else
{
    // do something else
}
0 голосов
/ 01 декабря 2011

Если вам нужно указать, какой экземпляр отправителя, то это зависит от того, есть ли у отправителя какое-либо свойство для его идентификации.Рассмотрим следующий код:

 public void randtest()
 {
     var rand = new Random();
     var obj1 = new object();
     var obj2 = new object();

     if (rand.Next() % 2 == 1)
     {
         method(obj1);
     }
     else
     {
         method(obj2);
     }

 }

public void method(object thing)
{
    //here i have no way to tell if thing is obj1 or obj2;
}
0 голосов
/ 01 декабря 2011

Если объект всегда будет одного и того же типа, но вы просто не уверены, каким будет этот тип, то установите точку останова внутри функции и используйте окно быстрого просмотра visual studio, чтобы проверить его. Вы сможете увидеть имя элемента управления и другие свойства объекта отправителя, а также его тип. Как только вы узнаете тип, который вы знаете, что разыгрывать отправителя, как в коде, если вам нужно манипулировать им.

...