带有特殊字符的C#变量名

时间:2014-08-09 09:36:36

标签: c# .net c#-4.0

我想在C#中的string变量名中包含一些特殊字符。

示例: string foo-bar = String.Empty;

据我所知,我不能像上面的例子中提到的那样声明一个变量。 有没有办法用"声明变量名称? - "包括?

4 个答案:

答案 0 :(得分:7)

来自MSDN

  

您不能只选择任何字符序列作为变量名称。然而,这并不像听起来那么令人担忧,因为你仍然留下了非常灵活的命名   系统。   基本变量命名规则如下:

     

变量名的第一个字符必须是字母,下划线字符(_)或at符号(@)。   后续字符可以是字母,下划线字符或数字。

答案 1 :(得分:3)

不,这在C#中是不可能的。


如果你真的,真的,真的想要这样做,你可以使用Dictionary<string, string>

Dictionary<string, string> someVars = new Dictionary<string, string>()
                                      {
                                          "foo-bar" = String.Empty,
                                          "bar-foo" = "bazinga"
                                      }

使用它们看起来像这样:

string newstring = someVars["foo-bar"] + "Hello World!";

不要只使用变量名,而是在字典中查找字符串。请注意,这是非常低效的,只是作为一个笑话,所以请不要真的使用它;)

答案 2 :(得分:0)

你不能在c#和大多数其他编程语言中做到这一点。我还建议你遵循C#命名约定,因为它可以帮助你以一种至少对我来说 - 一直觉得舒服的方式阅读你的代码。

答案 3 :(得分:0)

如果您要反序列化对象,则可以使用JsonProperty来实现。

示例:

public class SubscriptionListJsonData
{
    [JsonProperty(PropertyName = "subscriptions")]
    public string SubscriptionData { get; set; }
    [JsonProperty(PropertyName = "@nextLink")]
    public string nextLink { get; set; }
}

Follow this link for partially reading Json.