Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取字符串";System.Collections.ObjectModel.ObservableCollection“;来自包含泛型ObservableCollection的类型(System.Type)?_C#_Observablecollection - Fatal编程技术网

C# 获取字符串";System.Collections.ObjectModel.ObservableCollection“;来自包含泛型ObservableCollection的类型(System.Type)?

C# 获取字符串";System.Collections.ObjectModel.ObservableCollection“;来自包含泛型ObservableCollection的类型(System.Type)?,c#,observablecollection,C#,Observablecollection,我得到了一个全名为的类型(如果有帮助): 从该类型中,我希望将“System.Collections.ObjectModel.ObservableCollection”作为一个字符串,但我希望“干净地”执行它,这意味着不使用字符拆分字符串。 我认为策略是获得一个类型或其他类型的东西,其全名为“System.Collections.ObjectModel.ObservableCollection”,但我确实没有做到://真正的“类型”名称不是System.Collections.ObjectMod

我得到了一个全名为的类型(如果有帮助):

从该类型中,我希望将“System.Collections.ObjectModel.ObservableCollection”作为一个字符串,但我希望“干净地”执行它,这意味着不使用字符拆分字符串。 我认为策略是获得一个类型或其他类型的东西,其全名为“System.Collections.ObjectModel.ObservableCollection”,但我确实没有做到://

真正的“类型”名称不是
System.Collections.ObjectModel.ObservableCollection
,正如VirtualBlackBox正确提到的那样,它是
System.Collections.ObjectModel.ObservableCollection`1
(因为它是泛型类型,
`1
表示泛型参数的数量)

通过使用
type.Name
(gives
observetecollection`1
)和
type.Namespace
(gives
System.Collections.ObjectModel
)可以非常接近

并不是说您的类型很可能不是泛型类型,而是它的规范带有泛型参数=
string

您可以使用获取参数类型(
string
)。

真正的“类型”名称不是
System.Collections.ObjectModel.ObservableCollection
,而是
System.Collections.ObjectModel.ObservableCollection`1
,正如VirtualBlackFox正确提到的那样(因为它是泛型类型,
`1
表示泛型参数的数量)

通过使用
type.Name
(gives
observetecollection`1
)和
type.Namespace
(gives
System.Collections.ObjectModel
)可以非常接近

并不是说您的类型很可能不是泛型类型,而是它的规范带有泛型参数=
string

您可以使用。

来获得参数类型(
字符串,在您的情况下)
只是为了补充Vlad的答案,不接受我的答案

`
字符直接在CLI()规范中指定,因此解析它是安全且“干净的”(只要您的C#代码在CLI基础结构下运行):

10.7.2

符合CLS的泛型类型名称使用以下格式进行编码
“名称[`arity]”
,其中[…]表示坟墓 重音字符
“`
和arity一起是可选的。 编码名称应遵循以下规则:

  • 名称应为不包含
    “`
    字符的ID(见分区II)
  • arity指定为无前导零或空格的无符号十进制数
  • 对于普通泛型类型,arity是在该类型上声明的类型参数数
  • 对于嵌套泛型类型,arity是新引入的类型参数数
  • 为了补充弗拉德的答案,不要接受我的答案

    `
    字符直接在CLI()规范中指定,因此解析它是安全且“干净的”(只要您的C#代码在CLI基础结构下运行):

    10.7.2

    符合CLS的泛型类型名称使用以下格式进行编码
    “名称[`arity]”
    ,其中[…]表示坟墓 重音字符
    “`
    和arity一起是可选的。 编码名称应遵循以下规则:

  • 名称应为不包含
    “`
    字符的ID(见分区II)
  • arity指定为无前导零或空格的无符号十进制数
  • 对于普通泛型类型,arity是在该类型上声明的类型参数数
  • 对于嵌套泛型类型,arity是新引入的类型参数数

  • 编译后的IL级别没有名为
    System.Collections.ObjectModel.ObservableCollection
    的类型,它的名称是
    System.Collections.ObjectModel.ObservableCollection`1
    System.type
    表示在IL级别可见的类型,而不是特定语言(在本例中为C#)表示它。即使对于C#,当类型打开时(无类型参数),它也被命名为
    System.Collections.ObjectModel.ObservableCollection
    编译后的IL级别没有名为
    System.Collections.ObjectModel.ObservableCollection
    的类型,它的名称是
    System.Collections.ObjectModel.ObservableCollection`1
    System.type
    表示在IL级别可见的类型,而不是特定语言(在本例中为C#)表示它。即使对于C#,当类型打开时(无类型参数),它也被命名为
    System.Collections.ObjectModel.ObservableCollection
    因此,考虑“作为一个特殊的字符在这样的问题上真的很烦人,不是吗?@VirtualBlackBox:是的,但我刚刚找到了一个解决方案:使用双倒勾:-Pnice我使用了html代码块和倒勾字符代码,但双倒勾更干净(如果不是更可读的话)。还添加了一个答案,带有定义它的规范中的点。@VirtualBlackBox:我尝试了html
    &x60;
    ,但在“内联”反勾选的代码中似乎失败了。是的,需要直接使用html
    标记,字符代码才能工作:
    &96;
    &96;
    (但它在评论中不起作用,因为即使是过滤过的html也是被禁止的)所以考虑“作为一个特殊字符在这样的问题上真的很烦人,不是吗?@VirtualBlackBox:是的,但我刚刚找到了一个解决方案:使用双反勾:-Pnice我使用了html代码块和反勾字符代码,但双反勾更干净(如果不是真的更可读的话)。还添加了一个带有定义它的规范中的点的答案。@VirtualBlackBox:我尝试了html
    `;
    ,但在“内联”反勾选代码中似乎失败了。是的,需要将html
    标记直接用于字符
    "System.Collections.ObjectModel.ObservableCollection`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"