C# 4.0 如何通过将不同的类对象传递给同一个方法来重用该方法?
如何通过传递不同的类对象来重用方法?我有两个不同的类,ClassOne和ClassTwo,在ProcessMessage方法中,我也想传递这个类,但是如何传递呢? 在某种程度上类似于//ProcessMessage(classText,objectTwo) 如果我使用这个(在得到你们的帮助之后),我知道,我如何使用testClass 比如:var text=testClass.MethodOne();还是什么C# 4.0 如何通过将不同的类对象传递给同一个方法来重用该方法?,c#-4.0,C# 4.0,如何通过传递不同的类对象来重用方法?我有两个不同的类,ClassOne和ClassTwo,在ProcessMessage方法中,我也想传递这个类,但是如何传递呢? 在某种程度上类似于//ProcessMessage(classText,objectTwo) 如果我使用这个(在得到你们的帮助之后),我知道,我如何使用testClass 比如:var text=testClass.MethodOne();还是什么 public static void ProcessMessage(string cl
public static void ProcessMessage(string classText, ClassOne testClass)
{
Console.WriteLine("ClassText:{0}", classText);
}
我不确定您为什么要这样做,因为您没有在任何地方使用
ProcessMessage
中的testClass
参数。但是您可以使用通用方法将任何类型的类传递给您的方法:
public static void ProcessMessage<T>(string classText, T testClass)
where T : class
{
Console.WriteLine("ClassText:{0}", classText);
}
我不确定您为什么要这样做,因为您没有在任何地方使用
ProcessMessage
中的testClass
参数。但是您可以使用通用方法将任何类型的类传递给您的方法:
public static void ProcessMessage<T>(string classText, T testClass)
where T : class
{
Console.WriteLine("ClassText:{0}", classText);
}
使用泛型是可能的,但正如Prerak K所说,为什么
class ClassOne
{
public string MethodOne()
{
return ("ClassOne");
}
}
class ClassTwo
{
public string MethodOne()
{
return ("ClassTwo");
}
}
class Program
{
static void Main()
{
var objectOne = new ClassOne();
var classText = objectOne.MethodOne();
ProcessMessage(classText, objectOne);
var objectTwo = new ClassTwo();
classText = objectTwo.MethodOne();
ProcessMessage(classText, objectTwo);
Console.ReadKey();
}
public static void ProcessMessage<T>(string classText, T testClass)
{
Console.WriteLine("ClassText:{0}", classText);
}
}
一类
{
公共字符串MethodOne()
{
报税表(“一级”);
}
}
二班
{
公共字符串MethodOne()
{
申报表(“第二类”);
}
}
班级计划
{
静态void Main()
{
var objectOne=new ClassOne();
var classText=objectOne.MethodOne();
ProcessMessage(classText,objectOne);
var objectTwo=newclasstwo();
classText=objectTwo.MethodOne();
ProcessMessage(classText,objectTwo);
Console.ReadKey();
}
公共静态void ProcessMessage(字符串classText,T testClass)
{
WriteLine(“ClassText:{0}”,ClassText);
}
}
可以使用泛型,但正如Prerak K所说,为什么
class ClassOne
{
public string MethodOne()
{
return ("ClassOne");
}
}
class ClassTwo
{
public string MethodOne()
{
return ("ClassTwo");
}
}
class Program
{
static void Main()
{
var objectOne = new ClassOne();
var classText = objectOne.MethodOne();
ProcessMessage(classText, objectOne);
var objectTwo = new ClassTwo();
classText = objectTwo.MethodOne();
ProcessMessage(classText, objectTwo);
Console.ReadKey();
}
public static void ProcessMessage<T>(string classText, T testClass)
{
Console.WriteLine("ClassText:{0}", classText);
}
}
一类
{
公共字符串MethodOne()
{
报税表(“一级”);
}
}
二班
{
公共字符串MethodOne()
{
申报表(“第二类”);
}
}
班级计划
{
静态void Main()
{
var objectOne=new ClassOne();
var classText=objectOne.MethodOne();
ProcessMessage(classText,objectOne);
var objectTwo=newclasstwo();
classText=objectTwo.MethodOne();
ProcessMessage(classText,objectTwo);
Console.ReadKey();
}
公共静态void ProcessMessage(字符串classText,T testClass)
{
WriteLine(“ClassText:{0}”,ClassText);
}
}
或者您可以创建如下界面:
interface IProcessable {
string MethodOne();
}
class ClassOne : IProcessable
{
public string MethodOne()
{
return ("ClassOne");
}
}
class ClassTwo : IProcessable
{
public string MethodOne()
{
return ("ClassTwo");
}
}
class Program
{
static void Main()
{
IProcessable objectOne = new ClassOne();
var classText = objectOne.MethodOne();
ProcessMessage(classText, objectOne);
IProcessable objectTwo = new ClassTwo();
classText = objectTwo.MethodOne();
ProcessMessage(classText, objectTwo);
Console.ReadKey();
}
public static void ProcessMessage(string classText, IProcessable testClass)
{
Console.WriteLine("ClassText:{0}", classText);
}
}
或者,您可以创建如下界面:
interface IProcessable {
string MethodOne();
}
class ClassOne : IProcessable
{
public string MethodOne()
{
return ("ClassOne");
}
}
class ClassTwo : IProcessable
{
public string MethodOne()
{
return ("ClassTwo");
}
}
class Program
{
static void Main()
{
IProcessable objectOne = new ClassOne();
var classText = objectOne.MethodOne();
ProcessMessage(classText, objectOne);
IProcessable objectTwo = new ClassTwo();
classText = objectTwo.MethodOne();
ProcessMessage(classText, objectTwo);
Console.ReadKey();
}
public static void ProcessMessage(string classText, IProcessable testClass)
{
Console.WriteLine("ClassText:{0}", classText);
}
}
为什么要这样做?我现在看到的示例有点奇怪,我删除了一些代码以缩短它!为什么要这样做?我现在看到的示例有点奇怪,我删除了一些代码以缩短它!或者在中使用testclass参数为这两个classesIm创建一个接口,但在本例中,我删除了它以缩短它!或者在中使用testclass参数为这两个classesIm创建一个接口,但在本例中,我删除了它以缩短它!