C# 如何创建类对象
我有一个名为C# 如何创建类对象,c#,asp.net,C#,Asp.net,我有一个名为ErrorMessageTest的类,它有一些属性 我有另一个名为ErrorHandlerTest的类和一个名为HandleErrorTest的方法,该方法将把上述内容作为参数,并在下面的结构中创建一个类 public class ErrorMessageTest { private string EventId; private string TransactionId; private string Timestamp; private strin
ErrorMessageTest
的类,它有一些属性
我有另一个名为ErrorHandlerTest的类和一个名为HandleErrorTest
的方法,该方法将把上述内容作为参数,并在下面的结构中创建一个类
public class ErrorMessageTest
{
private string EventId;
private string TransactionId;
private string Timestamp;
private string Component;
private string UserId;
private string Message;
private string Exception;
}
public static class ErrorHandlerTest
{
public static void HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
}
}
我需要返回一个
ErrorMessage
对象,但我不知道如何创建它的实例。在ErrorHandlerTest中实例化ErrorMessageTest添加:
ErrorMessageTest errorMessageTest = new ErrorMessageTest();
这将创建一个类ErrorMessageTest的实例,可以通过局部变量ErrorMessageTest进行访问,您可以随意使用它
编辑:粘贴了错误的名称副本,替换为ErrorHandlerTest中的errorMessageTest,以实例化errorMessageTest添加:
ErrorMessageTest errorMessageTest = new ErrorMessageTest();
这将创建一个类ErrorMessageTest的实例,可以通过局部变量ErrorMessageTest进行访问,您可以随意使用它
编辑:粘贴了错误的名称副本,替换为errorMessageTest,尽管您的所有变量在errorMessageTest类中都是私有的。你需要公开它。 你可以这样做-
public class ErrorMessage
{
public string EventId;
public string TransactionId;
public DateTime Timestamp;
public string Component;
public string UserId;
public string Message;
public string Exception;
}
public class ErrorHandlerTest
{
public static ErrorMessage HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
return new ErrorMessage()
{
Component = Component,
EventId = EventId,
Timestamp = Timestamp,
TransactionId = TransactionId,
UserId = UserId
};
}
}
尽管您的所有变量在ErrorMessageTest类中都是私有的。你需要公开它。 你可以这样做-
public class ErrorMessage
{
public string EventId;
public string TransactionId;
public DateTime Timestamp;
public string Component;
public string UserId;
public string Message;
public string Exception;
}
public class ErrorHandlerTest
{
public static ErrorMessage HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
return new ErrorMessage()
{
Component = Component,
EventId = EventId,
Timestamp = Timestamp,
TransactionId = TransactionId,
UserId = UserId
};
}
}
你有一些基本的错误 首先,您的所有字段都是私有的。相反,您将希望创建公共属性: 现在,在
HandleError
方法中,需要返回类型ErrorMessage
而不是void
<代码>作废表示无退货类型。如果您还希望将其设置为静态
类,请按如下操作:
public static class ErrorHandler
{
public static ErrorMessage HandleError(string eventId, string transactionId,
DateTime timeStamp, string component,
string userId)
{
return new ErrorMessage
{
EventId = eventId,
TransactionId = transactionId,
Timestamp = timeStamp,
Component = component,
UserId = userId
};
}
}
你有一些基本的错误 首先,您的所有字段都是私有的。相反,您将希望创建公共属性: 现在,在
HandleError
方法中,需要返回类型ErrorMessage
而不是void
<代码>作废表示无退货类型。如果您还希望将其设置为静态
类,请按如下操作:
public static class ErrorHandler
{
public static ErrorMessage HandleError(string eventId, string transactionId,
DateTime timeStamp, string component,
string userId)
{
return new ErrorMessage
{
EventId = eventId,
TransactionId = transactionId,
Timestamp = timeStamp,
Component = component,
UserId = userId
};
}
}
在必须为测试设置专用字段的情况下,我建议使用Microsoft.VisualStudio.TestTools.UnitTesting包中的。它有一个允许您设置私有字段的方法 这篇文章讨论PrivatObject和PrivateType的主题。PrivateObject用于访问实例的私有成员,而PrivateType用于静态类成员
但是请注意,通过反射设置私有字段(就像PrivateObject一样)有一个缺点,即您的测试需要了解ErrorMessage类的内部信息,这违反了根据约定进行测试的原则(公共类成员、接口)类型。在必须为测试设置专用字段的情况下,我建议使用Microsoft.VisualStudio.TestTools.UnitTesting包中的。它有一个允许您设置私有字段的方法 这篇文章讨论PrivatObject和PrivateType的主题。PrivateObject用于访问实例的私有成员,而PrivateType用于静态类成员
但是请注意,通过反射设置私有字段(就像PrivateObject一样)有一个缺点,即您的测试需要了解ErrorMessage类的内部信息,这违反了根据约定进行测试的原则(公共类成员、接口)类型。我希望您需要在方法HandleErrorTest()中返回一个ErrorMessageTest类。如果是这样,只需将方法的返回类型更改为ErrorMessageTest
public static ErrorMessageTest HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
}
并创建一个类ErrorMessageTest的实例,并形成如下返回的对象
return new ErrorMessageTest
{
EventId = eventId,
TransactionId = transactionId,
Timestamp = timeStamp,
Component = component,
UserId = userId
};
现在,您的方法如下所示
public static ErrorMessageTest HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
return new ErrorMessageTest
{
EventId = eventId,
TransactionId = transactionId,
Timestamp = timeStamp,
Component = component,
UserId = userId
};
}
我希望您需要在方法HandleErrorTest()中返回一个ErrorMessageTest类。如果是这样,只需将该方法的返回类型更改为ErrorMessageTestlike即可
public static ErrorMessageTest HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
}
并创建一个类ErrorMessageTest的实例,并形成如下返回的对象
return new ErrorMessageTest
{
EventId = eventId,
TransactionId = transactionId,
Timestamp = timeStamp,
Component = component,
UserId = userId
};
现在,您的方法如下所示
public static ErrorMessageTest HandleErrorTest(string EventId, string TransactionId,
DateTime Timestamp, string Component,
string UserId)
{
return new ErrorMessageTest
{
EventId = eventId,
TransactionId = transactionId,
Timestamp = timeStamp,
Component = component,
UserId = userId
};
}
什么是
错误消息
?你是说ErrorMessageTest
?创建类实例的常用机制有什么问题,即newerrormessage()
或newerrormessagetest
,视情况而定)?如果方法声明为返回void
,您打算如何从HandleErrorTest()
方法返回任何内容?我觉得这个问题一点也不清楚。你不能从void方法返回ErrorMessage。什么是错误消息?你缺少一些代码吗?您想在何处创建并返回错误消息?请注意:回答者:handleerrertest
是静态的
什么是ErrorMessage
?你是说ErrorMessageTest
?创建类实例的常用机制有什么问题,即newerrormessage()
或newerrormessagetest
,视情况而定)?如果方法声明为返回void
,您打算如何从HandleErrorTest()
方法返回任何内容?我觉得这个问题一点也不清楚。你不能从void方法返回ErrorMessage。什么是错误消息?你缺少一些代码吗?您想在何处创建并返回错误消息?请注意:回答者:HandleErrorTest
是static
不,ErrorHandlerTest是静态类不,ErrorHandlerTest是静态类返回ErrorMessageTest
的实例,而不是ErrorMessage
requests@PeterDuniho,正确的。但是他要的ErrorMessage类在哪里?你也在这里,事实上我在前面读过它作为ErrorMessageTest。这返回了一个ErrorMessageTest
的实例,而不是ErrorMessage
requests@PeterDuniho对