如何在类中声明静态函数
本文关键字:声明 静态函数 | 更新日期: 2023-09-27 18:27:20
我想在下面的代码中编写一个方法:
namespace WebUx.Helpers.CSharp
{
public class getExceptionMessage
{
< Method here >
var exError = e.Message;
if ( e.InnerException != null ) {
exError += "<br>" + e.InnerException.Message;
if (e.InnerException.InnerException != null ) {
exError += "<br>" + e.InnerException.InnerException.Message;
}
}
}
}
有人能告诉我应该如何声明类和方法吗。我对如何最好地声明感到困惑,我认为它应该是静态的,但不确定是否有更好的方法。请注意,我希望这个方法可以从代码中的许多地方调用。我想我可能应该返回一个值为exError的字符串。
为了避免那些可以在代码中到处使用的"辅助类",我编写了一个扩展方法:
public static class ExceptionExtensions
{
public static string GetFormattedErrorMessage(this Exception e)
{
if (e == null)
{
throw new ArgumentNullException("e");
}
var exError = e.Message;
if (e.InnerException != null)
{
exError += "<br>" + e.InnerException.Message;
if (e.InnerException.InnerException != null)
{
exError += "<br>" + e.InnerException.InnerException.Message;
}
}
return exError;
}
}
然后:
try
{
}
catch (Exception ex)
{
string msg = ex.GetFormattedErrorMessage();
}
我个人并不是很喜欢那些StringHelper
、ExceptionHelper
、FormHelper
。。。类,而唯一的目的是提供与特定类型相关的静态方法。扩展方法就是为这个特殊目的而设计的。
您希望创建一个助手/实用程序类,以便在整个代码中使用。我认为你走在了正确的道路上,静态类/方法适合这个概念。
静态类和方法的声明如下:
public static class MyUtilClass
{
public static string GetExceptionMsg(Exception ex)
{
var exError = e.Message;
if ( e.InnerException != null ) {
exError += "<br>" + e.InnerException.Message;
if (e.InnerException.InnerException != null ) {
exError += "<br>" + e.InnerException.InnerException.Message;
}
}
return exError;
}
}
在你的客户端代码中,你会使用这样的类:
try
{
// do something
}
catch (Exception ex)
{
var errMsg = MyUtilClass.GetExceptionMsg(ex);
// display or log errMsg
}
public static void YourStaticMethod()
{
}
这就是在类内部声明static
方法的方式。看起来你可能不确定它是否需要static
。您需要决定这是否是应该作为实例化对象的一部分调用的功能。如果是这样的话,那么它就不应该是static
。否则,如果它是一种实用方法或类似方法,static
可能是所需的路线。
如果你想让全班都是static
,你可以这样做:
public static class getExceptionMessage
{
}
请注意,如果您将类设为static
,那么该类的每个成员也需要是static
。