- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我最近需要为任意类型构建 C# 特定名称(必须始终包含 global::说明符)并且遇到了以下问题:
// 1 - value: System.String[,,,][,,][,]
string unexpectedFullName = typeof( string[,][,,][,,,] ).FullName;
// 2 - value: System.String[,][,,][,,,]
string expectedFullName = Type.GetType( "System.String[,][,,][,,,]" ).FullName;
我原以为两种情况下返回的值都是一样的。但是,由于某种原因,值的数组相关部分似乎被颠倒了(案例 1)。这是预期的逆转行为吗?
最佳答案
虽然 Type.FullName
返回的值和 C# 类型标识符有时恰好相同,这是不能保证的。请记住,Type.FullName
返回相同的值,无论它是从哪种 CLI 语言调用的,无论是 C#、VB.NET、Oxygene 还是其他任何语言。
对于多维数组和锯齿状数组,C# 语法按照后面写入的顺序列出索引,而反射语法返回与数组的逻辑结构相匹配的内容。并且 (C#) string[,][,,][,,,]
毕竟是 string
类型的值,它是一个 4 维数组(即 string[,,,]
),其中一个 3 维数组(即 string[,,,][,,]
)及其一个 2 维数组(即 string[,,,][,,][,]
).
与其依赖于 FullName
返回的反射语法名称,不如在分析类型时检查 Type
类的属性。 number of dimensions等信息或 generic arguments可以从那里检索。
构造类型时,也可以使用MakeArrayType
等方法或 MakeGenericType
在运行时创建复杂类型,而无需构造包含新类型成分的字符串。
本回答的部分内容被Marc Gravell指出- 谢谢!
关于c# - System.Type.FullName 的意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720579/
有人可以解释一下吗: 我们有两个相似的代码。它们的功能是相同的。但在第一个代码中我们有一个正常的结果,而在下一个代码中 - 非常奇怪。 我不明白为什么结果不同,因为我们只更改了值拆分的变体 - 从第一
我将在数据库字段中存储 Type.FullName,即“System.String”。将存储的类型名称是任意的,不受我的控制。类型名称的最大长度是多少? 编辑:我不会使用此信息来创建类型的实例,它仅用
我正在尝试使用全名时区将时间从时区转换为另一个时区。下面是我用过的java api。 TimeZone.setDefault(TimeZone.getTimeZone("Africa/Algi
当我在文件上使用 e.Fullname 或 e.Name 时,它会给我全名 + 扩展名,但我只想要文件名而不用像:名字后面的“.txt”。 如何只显示文件名而不显示其后的扩展名?是否有特定的代码? 我
现在我使用 devise 并且有两个字段。 fname 和 lname。 我希望能够将 full_name 字段放入用户模型。然后用户模型将获取 full_name 字段并通过用空格分隔来提取 fna
我的目标是检查 DirectoryInfo.FullName 是否是特殊文件夹之一。 这是我为此所做的事情(检查每个特殊文件夹的directoryInfo.FullName,如果它们相等):
当前修复此 MySQL 异常时遇到问题。我检查了几个与我类似的问题,但无法弄清楚为什么我的 FullName 列不被接受输入。我使用 MySQL Workbench 手动执行了 CALL 语句,它工作
你好:)这是我的代码: myView.m 从 xib 加载 - (void)loadData { self.players = [model.dbManager.playersDbManage
我最近需要为任意类型构建 C# 特定名称(必须始终包含 global::说明符)并且遇到了以下问题: // 1 - value: System.String[,,,][,,][,] string un
我最近需要为任意类型构建 C# 特定名称(必须始终包含 global::说明符)并且遇到了以下问题: // 1 - value: System.String[,,,][,,][,] string un
我在下面有一个 powershell 脚本,它需要一个配置文件并删除与正则表达式匹配的 x 天之前的文件。 配置文件: path,pattern,days,testrun C:\logs\,^data
我有一个Google驱动器文件夹,有时不同步。 Google(或其他人)将在目录/文件名后附加(1)。然后它将删除原始目录,我将有一堆名为“xxx(1)”的文件夹和文件。 我一直在尝试编写一个Powe
我正在尝试解决需要这些周长的问题: “字符串变量 fullName 包含以下两种格式之一的名称:姓氏、名字(逗号后跟空格),或名字 姓氏(单个空白)将名字提取到字符串变量firstName中,将姓氏提
我正在使用 DotNetOpenAuth 库来处理 Google(仅)OpenId。我正在毫无问题地检索电子邮件。但我无法获取 FullName,它始终为 null。 request.AddExten
需要验证全名(名字/姓氏 - 1 个输入字段)。我是这个领域的新手,无法制定正确的语法也许也适用于正则表达式
当我访问 FileSystemInfo 对象的 Fullname 属性时,我的硬盘驱动器上有一些文件会抛出 PathTooLongException。有什么办法解决这个问题(不包括重命名不是一个选项的
我正在尝试组合一个 Azure 函数以在 HTTP 触发器上运行。我的问题是,每当我运行该函数时,我都会从六个模块中收到一个关键错误异常。导入 pandas 时似乎会调用它,我不明白为什么。这是回溯:
我正在尝试组合一个 Azure 函数以在 HTTP 触发器上运行。我的问题是,每当我运行该函数时,我都会从六个模块中收到一个关键错误异常。导入 pandas 时似乎会调用它,我不明白为什么。这是回溯:
我有一个注册/登录方法(来自 PFFacebookUtilsV4),当新的 Facebook 用户登录时,它可以成功地将新的 PFUser 对象添加到我的 Parse 数据库中。在该方法中,我创建了
我正在上我的第一个 CS 课,但我无法编译它。我查看了我教授的笔记、讲座和示例,但我输入的内容似乎并不重要,这是一个错误。我收到 38 个错误,而且只有 25 行代码!许多错误没有任何意义,例如,“e
我是一名优秀的程序员,十分优秀!