如何从 C# 中的方法获取 return 值
How to return value from the method in C#
这可能是一个小问题,但我不明白为什么会抛出错误。
错误:
Use of unassigned local variable status.
public static bool HandleError(int eventId, int transactionId, DateTime timestamp, int userId, string message)
{
static bool status;
ErrorMessage objHandleError = new ErrorMessage();
try
{
objHandleError.EventId = eventId;
objHandleError.TransactionId = transactionId;
objHandleError.Timestamp = timestamp;
objHandleError.UserId = userId;
objHandleError.Message = message;
if (string.IsNullOrEmpty(objHandleError.Message))
{
status = false;
}
else
status = true;
// Places the recived object on the service bus
MessageBroadcastHelper.Send("ErrorMessage", objHandleError);
}
catch (Exception ex)
{
//To Do : if any exception we may write this exception to the event log.
objHandleError.Exception = ex.ToString();
//string ExceptionString = SerializeException(ex);
}
return status;
}
如果我在 class 级别声明状态变量,它不会抛出任何异常,如果我在 class 之外声明状态变量,我不会收到任何错误。
因为我只在这个方法中使用这个变量,所以我不想把它暴露在外面,任何人都可以指出下面代码中的问题所在。
这里有两个问题:
1) 您已将局部变量声明为静态变量。那是无效的。
2) 如果在你的方法中早期抛出异常,你将捕获它然后尝试 return status
而无需为其赋值。
我建议在大多数情况下你根本不想捕获异常——或者如果你想要捕获它(例如为了日志记录),你应该通常然后使用 throw;
让它向上传播。如果您真的非常想捕获异常而不是重新抛出它,则需要计算出您想要 returned 的值。
(我也建议不要捕获裸Exception
即使你确实想捕获一些异常。你应该几乎总是捕获 特定的 异常。)
老实说,不清楚 returned 值有多大用处 - 调用者正在传递消息,所以对 他们 来说很容易检查它是否为 null 或空...
这可能是一个小问题,但我不明白为什么会抛出错误。
错误:
Use of unassigned local variable status.
public static bool HandleError(int eventId, int transactionId, DateTime timestamp, int userId, string message)
{
static bool status;
ErrorMessage objHandleError = new ErrorMessage();
try
{
objHandleError.EventId = eventId;
objHandleError.TransactionId = transactionId;
objHandleError.Timestamp = timestamp;
objHandleError.UserId = userId;
objHandleError.Message = message;
if (string.IsNullOrEmpty(objHandleError.Message))
{
status = false;
}
else
status = true;
// Places the recived object on the service bus
MessageBroadcastHelper.Send("ErrorMessage", objHandleError);
}
catch (Exception ex)
{
//To Do : if any exception we may write this exception to the event log.
objHandleError.Exception = ex.ToString();
//string ExceptionString = SerializeException(ex);
}
return status;
}
如果我在 class 级别声明状态变量,它不会抛出任何异常,如果我在 class 之外声明状态变量,我不会收到任何错误。
因为我只在这个方法中使用这个变量,所以我不想把它暴露在外面,任何人都可以指出下面代码中的问题所在。
这里有两个问题:
1) 您已将局部变量声明为静态变量。那是无效的。
2) 如果在你的方法中早期抛出异常,你将捕获它然后尝试 return status
而无需为其赋值。
我建议在大多数情况下你根本不想捕获异常——或者如果你想要捕获它(例如为了日志记录),你应该通常然后使用 throw;
让它向上传播。如果您真的非常想捕获异常而不是重新抛出它,则需要计算出您想要 returned 的值。
(我也建议不要捕获裸Exception
即使你确实想捕获一些异常。你应该几乎总是捕获 特定的 异常。)
老实说,不清楚 returned 值有多大用处 - 调用者正在传递消息,所以对 他们 来说很容易检查它是否为 null 或空...