我知道有三种方法可以获得CultureInfo对象的完整语言名称.
CultureInfo.DisplayName
CultureInfo.NativeName
CultureInfo.EnglishName
Run Code Online (Sandbox Code Playgroud)
DisplayName以已安装的.net语言提供名称.
NativeName以"CultureInfos"语言提供名称.
EnglishName用英文命名(令人惊讶......)
因此,对于CultureInfo de-DE,这(在英语.net上安装)
德语
德语
德语
现在我的问题是:有没有办法用另一种语言来询问de-DE的语言名称?例如,我想要荷兰语的de-DE语言名称(这将是'Duits').
我创建了一个这样的类型:
TypeBuilder tb = moduleBuilder.DefineType(myname, TypeAttributes.Class |
TypeAttributes.Public, typeof(BaseClass), new Type[] { typeof(ImyInterface) });
Run Code Online (Sandbox Code Playgroud)
然后为构造函数,方法等提供了大量的生成代码.当我开始使用该类时,我发现了一些奇怪的东西.我想检查我创建的类型'myname'是否真的实现了ImyInterface.我希望以下两个语句都返回true:
// t is Type 'myName'
Type baseInterface = t.GetInterface(typeof(ImyInterface).name);
if (baseType != null)
{
// this is actually true, as I expected
}
if (typeof(ImyInterface).isAssignableFrom(t))
{
// the if clause is false, but I don't have a clue why??
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个实现ImyInterface的类,但它不能分配给ImyInterface类型的对象,我错过了什么?
顺便说一句,没有涉及泛型,接口只是测试概念的基本方法:
public interface ITestInterface
{
int CalcSquaredInteger(int number);
}
Run Code Online (Sandbox Code Playgroud)