为什么我会得到一个CS1056意外的角色''在这个代码上

时间:2015-07-23 02:19:54

标签: c#

我得到了这个意外的角色''错误,我不明白为什么。

var list = new List<MyModel>();    
list.Add(new MyModel() {
    variable1 = 942,
    variable2 = 2001,
    variable3 = "my text",
    variable4   = 123
​}); // CS1056 Unexpected character ''  on this line

8 个答案:

答案 0 :(得分:18)

根据错误说明以及我在复制/粘贴后从Online编译器获得的实际错误代码,此行上的代码包含一个不可见但编译器正在尝试解释的字符。只需尝试将从结束括号开始的每个字符擦除到您的数字3并再次按Enter它应该正常工作(它确实适用于我)

答案 1 :(得分:17)

我刚删除了位于我的临时文件夹Version=v4.0.AssemblyAttributes.cs(1,1,1,1)中的文件C:\Users\MyUser\AppData\Local\Temp,然后它完美无缺。

对于 .NET Core ,您必须删除.NETCoreApp,Version=v2.1.AssemblyAttributes.cs

File to delete

答案 2 :(得分:3)

Daneau中的accepted answer所述,问题出在IDE中不可见的字符上。

以下是使用 Notepad ++ 查找不可见字符的几种解决方案。

解决方案1:显示符号

  • 将代码复制到Notepad ++,
  • 选择视图->显示符号->显示所有字符

这可以显示不可见的控制字符。

解决方案2:转换为ANSI

  • 将代码复制到Notepad ++,
  • 选择编码->转换为ANSI

如果非ANSI字符,它将把不可见的字符转换为?

解决方案3:不删除任何ASCII字符

  • 将代码复制到Notepad ++,
  • 打开“查找”窗口(Ctrl + F)
  • 选择“替换”标签
  • 在“查找内容”中写道:[^\x00-\x7F]
  • 将“替换为”留空
  • 在“搜索模式”中,选择“正则表达式”
  • 查找并删除所有ASCII字符

这将不删除任何ASCII字符。

注意:这可以删除有效的非ASCII字符(在字符串和注释中),因此请尝试跳过这些字符。

提示:使用HEX-Editor插件

使用Notepad ++ HEX-Editor插件查看文本的二进制代码。任何超出0x00-0x7F(0-127)范围的字符都是非ASCII字符,并且可能是问题所在。

答案 3 :(得分:0)

再次编写代码而不复制它。那对我有用

答案 4 :(得分:0)

只报告我的直接经验。 正如Daneau所写,我在文本中隐藏了一个字符(ASCII DLE,在弄乱斑马打印机时进行了复制)。我无力重写所有内容,因此我使用了记事本++“查看->显示符号->显示所有字符”功能。 很抱歉没有评论Daneau的参赛作品,但我的声誉不高。

答案 5 :(得分:0)

转到C:\ Users \ UserName \ AppData \ Local \ Temp \并清除数据或删除错误中指定的文件,即可解决此问题。

VS会自动添加所需的文件,不用担心。

答案 6 :(得分:0)

确实与复制粘贴代码和您看不到的字符有关。解决此问题的最简单方法是将复制的粘贴代码传递到便笺应用程序或简单的文本程序中,该程序将自动删除这些不可见的字符。之后,只需从文本编辑器中复制代码,然后将其粘贴到您的IDE中即可。

答案 7 :(得分:-1)

转到: C:\ Users \ vikas \ AppData \ Local \ Temp

删除所有临时文件。