首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于string的一些疑义

2012-10-21 
关于string的一些疑问using Systemusing System.Collections.Genericusing System.Linqusing System.Te

关于string的一些疑问
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
  class Program
  {
  static void Main(string[] args)
  {
  String StudentName = "张山";
  string ClassName = "机电5班";
  string SchoolInfo = "北京大学简称为\"北大\"";
  string SchoolInfo1 = @"北京大学简称为\"北大\"" ;
  string SchoolInfo2 = @"北京大学简称为"北大"";
  }
  }
}
编译总是出错,请教原因

[解决办法]
使用@取消\转义后,如果要表示双引号,使用连续两个双引号来表示。

C# code
@"北京大学简称为""北大""" == "北京大学简称为\"北大\""
[解决办法]
string SchoolInfo1 = @"北京大学简称为\"北大\"" ;
改成这样
 string SchoolInfo1 = "北京大学简称为\"北大\"" ;

 

@的意思就是告诉编译器,这里面的字符不需要转义。
[解决办法]
@是取消字符串中的转意符。

不加@的字符串:"北京大学简称为\"北大\"",C#会解释成两个(一个\和一个")。

如果加了@:@"北京大学简称为\"北大\"" ,C#会解释成两个\加两个"。

其实你写成:@"北京大学简称为""北大""",就能达到你要的效果了。
[解决办法]
摘录自某书,C#引入了以@为前缀的字符串字面量记法,术语称作逐字字符串。

使用逐字字符串,可以使对一个字面量的转义字符的处理失效并输出字符串。

这在使用表示目录和网络路径的字符串时最有用。

因此不需要使用\\转义字符,所有的转义字符都被显示出来了。

C# code
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; // 一定要加上这一行namespace WindowsFormsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            label1.Text = "北京大学简称为\"北大\"";            //label1.Text = @"北京大学简称为\"北大\"";            label1.Text = @"北京大学简称为""北大""";        }    }} 

热点排行