具有国际字符的System.Data.Objects命名空间中的ObjectParameter

时间:2010-12-03 09:45:11

标签: .net

我正在尝试在System.Data.Objects命名空间中使用ObjectParameter。

这个确实有用:new ObjectParameter(“test”,1) 这个抛出一个错误:new ObjectParameter(“täst”,1)

问题是当第一个参数包含å,ä,ö等瑞典字符时。我收到以下错误消息:指定的参数名称'täst'无效。参数名称必须以字母开头,并且只能包含字母,数字和下划线。参数名称:名称

为什么这不起作用?如果不支持国际字符,这似乎很奇怪!

/ S

1 个答案:

答案 0 :(得分:1)

对我来说,它似乎并不是很奇怪。毕竟,这是参数的名称 - 它不像是参数的

就像变量名,方法名等在某些语言中不能包含非ASCII字符一样(我刚刚检查过,结果发现它们可以在C#中... )。

为了简单起见,我通常建议表格名称,存储过程名称,参数名称等在ASCII中更好。我意识到这是非常盎格鲁 - 撒克逊偏见的,但考虑到我们作为一个行业在获得Unicode等方面有多么糟糕,为标识符创建易于滥用的名称对我来说似乎是一个灾难。特别是,ASCII字符之间的相等是非常简单的 - 它可以区分大小写或不区分大小写,但这是关于。没有文化特定的问题需要担心。

当您需要担心所有Unicode字母时,您可能会在使用不同的文化时最终匹配不同的名称......当然这不是一个好主意。

我同意文档可以更清晰批次:)