C# 为什么.NET运行时会在我的字符串中添加下划线?

C# 为什么.NET运行时会在我的字符串中添加下划线?,c#,.net,settings,C#,.net,Settings,我以C方式存储应用程序设置(Properties.settings.Default.Save();)。这些设置随后由C#运行时存储在以下文件夹中: C:\Users\UserName\AppData\Local\My_Company_Name 奇怪的是,我在VisualStudio中输入了“我的公司名称”作为公司属性([assembly:AssemblyCompany(“我的公司名称”)]) 那么,下划线是从哪里来的呢?我见过其他应用程序创建文件夹,其中包含空格…问题是您正在添加名为“我的公司

我以C方式存储应用程序设置(
Properties.settings.Default.Save();
)。这些设置随后由C#运行时存储在以下文件夹中:

C:\Users\UserName\AppData\Local\My_Company_Name
奇怪的是,我在VisualStudio中输入了“我的公司名称”作为公司属性(
[assembly:AssemblyCompany(“我的公司名称”)]


那么,下划线是从哪里来的呢?我见过其他应用程序创建文件夹,其中包含空格…

问题是您正在添加名为“我的公司名称”的
属性。这在C中不是有效的
成员
名称,因此它会自动转换为有效名称:“我的公司名称”


如果您创建一个名为“我的项目”的新项目,也会发生同样的情况。项目的默认
命名空间
将不是“我的项目”,因为它无效。VS将为您创建的默认
名称空间将是“我的项目”。

+1。同意。只需添加quote
每个应用程序设置必须具有唯一的名称;名称可以是字母、数字或下划线的任意组合,但不能以数字开头,也不能包含空格