C# 已知有一个和 类名 相同的字符串str, 如何根据str来获取这个类?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 已知有一个和 类名 相同的字符串str, 如何根据str来获取这个类?相关的知识,希望对你有一定的参考价值。
C#,现在我有一个类 A ,我想根据这个类名所对应的字符串"A"来,获取这个类。请教有什么方法可以实现?
使用反射技术来实现你的需求如果你要获取到这个类的对象实例可以这么做
以String类为例子
string str = "System.String";
String exp = (String )Activator.CreateInstance(str);
//如果你要得到这个类的类型信息可以这么做
Type expType = Type.GetType(str);
//使用Type对象也可以实例化一个对象同样调用上面方法
String exp = (String )Activator.CreateInstance(expType);
更请参考.NET反射技术,它可以教会你更多的关于后期绑定的信息 参考技术A Activator.CreateInstance 方法有一个重载可以,你查下。
Activator.CreateInstance(String, String) 使用命名的程序集和默认构造函数,创建名称已指定的类型的实例。追问
能说详细点吗?
我指的是我自己创建了一个类 A,现在想通过这个类的名字 "A" 来获取这个类,不是类的实例
就是通过某些方法来 输入一个 ”A“,获取类A
你的目的是创建这个类的新实例还是获取已经创建的实例的引用?
参考技术B 可以使用Activator的这个方法CreateInstance,其方法的参数是程序集和类名,如果能引用到这个程序集则正常就可以创建实例。c#字符串string str="a0b0c0";如何去掉最后一个0
如果是个已知数很好办,根据字符串的特征来替换,如果是未知数就不好办了,具体情况要具体分析。如果只是要替换你现在提供的这个已知的字符串,方法如下:
string str="a0b0c0";
string str2=str.Replace("c0","c");这样就可以把最后那个0替换掉了。 参考技术A 如果是仅仅去掉最后一个 字符而已 就是这样写.
str=str.Remove(str.Length - 1);
如果你是想 去掉字符中最后的0
那就是
string str="a0b0c0";
int i = 0;
int j = 0;
foreach (char item in str)
i++;
if (item == '0')
j = i;
str = str.Remove(j-1); 参考技术B 如果你知道0 在字符串中的位置
可以用Replace 函数直接替换
string str="aaaa";
System.Text.StringBuilder b = new System.Text.StringBuilder(str);
b.Replace("a","b",1,1);
str=b.ToString();
Console.Write(str); //输出为: 'abaa'
如果不知道要替换的0的位置,则要自己根据实际需求写算法判断了 参考技术C soustring
以上是关于C# 已知有一个和 类名 相同的字符串str, 如何根据str来获取这个类?的主要内容,如果未能解决你的问题,请参考以下文章
c#字符串string str="a0b0c0";如何去掉最后一个0
2021-12-27:给定一个字符串str,和一个正数k, str子序列的字符种数必须是k种,返回有多少子序列满足这个条件。 已知str中都是小写字母, 原始是取mod, 本节在尝试上,最难的, 搞出