这几天连着问了几个比较白的问题对这里的大哥们来说 ..
  可是,还是禁不住想问一个问题..
我真的翻书了..上网查资料..     可还是想不明白..希望大家不要感觉很烦 .. 很不屑 ...    具体的困惑就是..    
char a='a';
Textbox.text += (int)a;得到 a至z的转型值为97~122   A至Z是65~90
 和ASCII码是一样的.. 可C#字符不是用unicode方式编码的么 .!?
巧合么 ..!?还有就是这行代码:   Textbox.text += (int)a;
 如果去掉 "+" 符号,就提示 无法将类型“int”隐式转换为“string",可有了"+", 为什么就可以了 !?
(如果没有强制装换(int),就提示 无法将类型“char”隐式转换为“string"可有+ 就可以..)

解决方案 »

  1.   

    char是1 bit的ascii。+=和=是不同的。=是引用传递。字符串是只读的。表面上看 str1 = str1 + str2。
    其实是
    str3 = str1
    str1 = new string
    str1 = strcat(str3, str1)
      

  2.   

    +=的时候 就是Textbox.text = Textbox.text+(int)a;
    这么加的时候他自动会转换。char a='a';
    int(a);
    这么转换好像与编码无关个人意见,仅供参考
      

  3.   

    Textbox.text += (int)a  
    ==  
    Textbox.text = Textbox.text + (int)a   
    这里把int类型转换成string类型了Textbox.text = (int)a 或者 a
    肯定要报错 两个类型都不一样的怎么赋值
      

  4.   

    Textbox.text += (int)a;
    写完整了就是:Textbox.text = "" + (int)a; 
    字符串和一个数值型连接的话就会把数值型先变为字符串型的了。所以就成了
    Textbox.text = "" + "97";
      

  5.   

    没有 + 的时候  就是赋值了  string  != int  类型的.就抱错了.有+ 的话  ,就成了  (String 类型 )  =   (String 类型) + (int 类型) ;你就想下面代码来理解。
     Console.WriteLine("123" + 1);//1231