Developer Programmer
یک شنبه 05 مهر 1388, 20:58 عصر
یه برنامه چت، تحت C# دارم که بنا به دلایلی باید اون رو به VB.Net تبدیل کنم.
قسمتی از برنامه که برای فهمیدن ورود و خروج کاربران استفاده میشه، به این شکله
public class StatusChangedEventArgs : EventArgs
{
// The argument we're interested in is a message describing the event
private string EventMsg;
// Property for retrieving and setting the event message
public string EventMessage
{
get
{
return EventMsg;
}
set
{
EventMsg = value;
}
}
// Constructor for setting the event message
public StatusChangedEventArgs(string strEventMsg)
{
EventMsg = strEventMsg;
}
}
// This delegate is needed to specify the parameters we're passing with our event
public delegate void StatusChangedEventHandler(object sender, StatusChangedEventArgs e);
حالا در کلاس دیگر از این delegate بصورت event استفاده میشه
class ChatServer
{
// The event and its argument will notify the form when a user has connected, disconnected, send message, etc.
public static event StatusChangedEventHandler StatusChanged;
private static StatusChangedEventArgs e;
// This is called when we want to raise the StatusChanged event
public static void OnStatusChanged(StatusChangedEventArgs e)
{
StatusChangedEventHandler statusHandler = StatusChanged;
if (statusHandler != null)
{
// Invoke the delegate
statusHandler(null, e);
}
}
مشکل دقیقا اینه که من این قسمت رو
StatusChangedEventHandler statusHandler = StatusChanged;
در VB.Net به این صورت می نویسم
Public Shared Event StatusChanged As StatusChangedEventHandler
Private Shared e As StatusChangedEventArgs
Private Shared StatusChanged As StatusChangedEventHandler
Public Shared Sub OnStatusChanged(ByVal e As StatusChangedEventArgs)
Dim statusHandler As StatusChangedEventHandler = ChatServer.StatusChanged
If (Not statusHandler Is Nothing) Then
statusHandler.Invoke(Nothing, e)
End If
End Sub
اما دات نت گیر داده که
Dim statusHandler As StatusChangedEventHandler = ChatServer.StatusChanged
اشتباهه ! از چند decompiler هم استفاده کردم اما همشون دقیقا مثل من نوشتن!
ممکنه راهنمایی کنین که اشکال کار از کجاست؟
قسمتی از برنامه که برای فهمیدن ورود و خروج کاربران استفاده میشه، به این شکله
public class StatusChangedEventArgs : EventArgs
{
// The argument we're interested in is a message describing the event
private string EventMsg;
// Property for retrieving and setting the event message
public string EventMessage
{
get
{
return EventMsg;
}
set
{
EventMsg = value;
}
}
// Constructor for setting the event message
public StatusChangedEventArgs(string strEventMsg)
{
EventMsg = strEventMsg;
}
}
// This delegate is needed to specify the parameters we're passing with our event
public delegate void StatusChangedEventHandler(object sender, StatusChangedEventArgs e);
حالا در کلاس دیگر از این delegate بصورت event استفاده میشه
class ChatServer
{
// The event and its argument will notify the form when a user has connected, disconnected, send message, etc.
public static event StatusChangedEventHandler StatusChanged;
private static StatusChangedEventArgs e;
// This is called when we want to raise the StatusChanged event
public static void OnStatusChanged(StatusChangedEventArgs e)
{
StatusChangedEventHandler statusHandler = StatusChanged;
if (statusHandler != null)
{
// Invoke the delegate
statusHandler(null, e);
}
}
مشکل دقیقا اینه که من این قسمت رو
StatusChangedEventHandler statusHandler = StatusChanged;
در VB.Net به این صورت می نویسم
Public Shared Event StatusChanged As StatusChangedEventHandler
Private Shared e As StatusChangedEventArgs
Private Shared StatusChanged As StatusChangedEventHandler
Public Shared Sub OnStatusChanged(ByVal e As StatusChangedEventArgs)
Dim statusHandler As StatusChangedEventHandler = ChatServer.StatusChanged
If (Not statusHandler Is Nothing) Then
statusHandler.Invoke(Nothing, e)
End If
End Sub
اما دات نت گیر داده که
Dim statusHandler As StatusChangedEventHandler = ChatServer.StatusChanged
اشتباهه ! از چند decompiler هم استفاده کردم اما همشون دقیقا مثل من نوشتن!
ممکنه راهنمایی کنین که اشکال کار از کجاست؟