C#中怎么实现直接用 类名.方法 去调用某一方法
时间: 2023-12-25 17:03:24 浏览: 232
在C#中,可以使用静态方法来实现直接使用类名调用某一方法。首先,需要将方法声明为静态方法,然后通过类名直接调用该方法。
以下一个示例:
```csharp
public class MyClass
{
public static void MyMethod()
{
Console.WriteLine("Hello, World!");
}
}
```
在上述示例中,`MyClass` 类中定义了一个静态方法 `MyMethod`。要通过类名调用该方法,可以使用以下方式:
```csharp
MyClass.MyMethod();
```
这样就可以直接通过类名 `MyClass` 调用 `MyMethod` 方法了。
请注意,只有静态方法才能通过类名直接调用。非静态方法需要创建类的实例后才能调用。
相关问题
c#根据泛型获取泛型类名
可以使用 typeof 关键字获取泛型类型的 Type 对象,然后调用 Type.Name 属性即可获取泛型类名。
例如,假设有一个泛型类 GenericClass<T>,可以使用以下代码获取泛型类名:
```csharp
Type genericType = typeof(GenericClass<>);
string genericTypeName = genericType.Name;
```
这样,genericTypeName 的值就是 "GenericClass`1",其中 `1 表示泛型参数的数量。如果 GenericClass 有多个泛型参数,则 `1 应该改为相应的数字。
C# string类型找同名类名
在C#中,可以使用反射来将字符串转换为同名的类名和方法名。下面是一个示例代码:
```csharp
string strClass = "stringConvertClass.test"; // 命名空间+类名
string strMethod = "Method"; // 方法名
Type t = Type.GetType(strClass); // 通过字符串类型的strClass获取同名类"t"
System.Reflection.MethodInfo method = t.GetMethod(strMethod); // 通过字符串类型的strMethod获取同名的方法"method"
object obj = System.Activator.CreateInstance(t); // 创建t类的实例"obj"
method.Invoke(obj, null); // 调用t类实例obj的方法"method"
```
这段代码首先通过`Type.GetType()`方法将字符串类型的`strClass`转换为同名的类名,并将结果赋值给变量`t`。然后使用`t.GetMethod()`方法将字符串类型的`strMethod`转换为同名的方法名,并将结果赋值给变量`method`。接下来,使用`System.Activator.CreateInstance()`方法创建`t`类的实例,并将结果赋值给变量`obj`。最后,使用`method.Invoke()`方法调用`t`类实例`obj`的同名方法。
阅读全文