c#可以用中文作为变量名称,对吗

 我来答
vmm788
2016-12-25 · 超过122用户采纳过TA的回答
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:23.4万
展开全部
您好,您的意思是否是根据用户输入的字符串调用相应的变量?如果是,那么通过使用反射,这个是可以实现的。具体的做法是,使用System.Type类和System.Reflection命名空间中的FieldInfo类,我写了一个小程序,您可以先参考一下,如果还有疑问,您可以补充问题。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Reflection;//引用System.Reflection命名空间。namespaceWindowsApplicationTestReflectionString{publicpartialclassForm1:Form{intNumber;publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){Number=int.Parse(this.textBox1.Text);//这个按钮负责给Number赋值}privatevoidbutton2_Click(objectsender,EventArgse){//获取名为“Number”的字段。FieldInfomyFieldInfo=typeof(Form1).GetField("Number");//输出它的值label1.Text=myFieldInfo.GetValue(this).ToString();}//这个按钮把Number的值设为19990101。privatevoidbutton3_Click(objectsender,EventArgse){//使用TextBox1的内容建立一个FieldInfo对象FieldInfomyFieldInfo=typeof(Form1).GetField(this.textBox1.Text);//更改它的值。myFieldInfo.SetValue(this,(object)19990101);}}}这个程序是一个窗口应用程序,共有三个按钮、一个单行文本框和一个标签,都是默认命名。=======================================================您好,目前我没有看到文档说反射不能在WebForm中使用。反射是.NETCTS提供的功能,与具体的编程语言和程序运行环境无关。所以这个方法没有问题,您只需要把它稍加修改加到XXX.aspx.cs文件中就行了。===========================================================对补充的答复:您好,FieldInfo类的含义是表示一个类中的某个字段,因此,它必须被反射到类上。对于一个WebForm页,您可以这样写:(这个ASPX页有一个button,一个TextBox和一个Label)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Reflection;publicpartialclass_Default:System.Web.UI.Page{publicstringname;protectedvoidPage_Load(objectsender,EventArgse){name="David";}protectedvoidButton1_Click(objectsender,EventArgse){if(this.IsValid){FieldInfomyFieldInfo=typeof(_Default).GetField(this.TextBox1.Text);this.Label2.Text=myFieldInfo.GetValue(this).ToString();}}}其中,FieldInfomyFieldInfo=typeof(_Default).GetField(this.TextBox1.Text);一句使用反射得到了_Default类中的字段的值。运行这个网页,在文本框中输入“name”后点击按钮,Label上就会显示出“David”。谢谢。
阳光的雷咩咩
2016-12-25 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7862万
展开全部
对的,C#从底层支持unicode
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式