var temp = new { @class = "Hello World" };
一般加@符号,但是中划线好像还真不行,一般正常定义属性有中划线编译也通不过的。
提供一个思路,看能不能用特性来实现你想要的功能。
public class Temp { [PropertieName("data-val")] public String DataVal { get; set; } } public class PropertieNameAttribute : Attribute { public String Name { get; set; } public PropertieNameAttribute() { } public PropertieNameAttribute(String name) { Name = name; } }
我还是用key-value的方式去解决吧,谢谢
一切clr语言(包含c#)都会转义成il
il的变量名也是跟c#差不多 数字 英文 下划线
不存在特殊符号
另外匿名类型只是一种语法糖(一种封装)
生成的时候编译器还是会生成一个完全符合c#命名规则的类型来去对应你那个匿名类型
有中划线的变量名是非法的。跟匿名无关啊。不知道楼主到底想做啥?