C# 学习

C#学习

基础知识

.net两种交互模式:

  • C/S:客户机Client/服务器Server模式

  • B/S:浏览器Browser/服务器模式Server模式

注释三种方法

1. //
2. /* */
3. ///自动跳出文档注释

快捷键

  1. 快速对齐:Ctrl+k+d,若有语法错误,则无效(VB默认自动对齐,C#则没有)
  2. 弹出智能提示:Ctrl+j
    image-20230916221718841

折叠代码

#region 空一格写注释,折叠后会显示此注释。也可以不写
//里面可以写注释,也可以写代码
Console.WriteLine(6);
#endregion

(VB是End Region,而且#region后必须写注释)

image-20230916221803941

其他

  1. string类型可以存空值,char不行
char c = ''; //语法错误
string s = ""; //可以存空值
  1. C#定义类型后不赋值是不能使用的,会报错。VB可以,变量为默认值

  2. C#中有些类型有相同名称,仅开头字母大小写不懂,如String和string

image-20230916221925619

区别在于大写的String是整个.net共有的类,VB也可以用
小写string是C#独有,是一个关键字。
编译时两者都会要给映射到System.String,所以用起来没有区别,编辑器建议用string

  1. C#的+运算符两边只要有一边是字符串,那么就是连接字符串。VB的+一边数值一边字符串会报错,用&可以
  2. C#占位符,用{ }表示,里面是序号,从0开始。后面按顺序跟字符串。前面加$可以内插,如下图
string name = "张三"; 
int age = 26; 
Console.WriteLine("名字叫{0},年龄是{1}。", name, age); 
Console.WriteLine($"名字叫{name},年龄是{age}。");

如果要输出“{”,用两个{{表示,具体参考转义符

经测试VB也可以用

转义符

\'单引号
\"双引号
\\ 表示一个反斜杠
\0 空字符
\a 感叹号
\b 退格
\f 换页
\n 新行
\r 回车
\t 水平tab
\v 垂直tab

这些转义实际上仍是一个字符,比如\b是算一个字符而不是两个。所以char c= "/b" 不会报错

  1. C#字符串存在转义符,该字符串以文本形式写入到文本文件中,转义符仍有效,如
string text = "你好\n再见";
System.IO.File.WriteAllText(@"C:\Users\Albert\Desktop\777.txt", text);

那么输出

image-20230916222204047

有些教程说要写\r\n才能换行,我这里测试\n就可以换行

但是vbnet无效

  1. 如果不想转义,在字符串前加 @ 。如文件路径包含大量反斜杠,每次用\替换很麻烦,不如直接加 @ 让程序不要转义 image-20230916222326204

@还可以令字符串按原格式输出,例如下图文字是两行,那么输出也是一样的

Console.WriteLine(@"你好
   再见");
输出如下:
    
你好
               再见

关于VB.net

vb.net的转义符与C#不同,不是用\表示

部分转义如下

"" ==> "
}} ==> }
{{ ==> {

而 ',~,$,%,^,\ 等传统C语法的需要转义的字符都可以直接输出。

对于回车等特殊字符VB.NET使用vbCrLf等常量:

成员 常量 等效 说明
CrLf vbCrLf Chr(13) + Chr(10) 回车/换行组合符
Cr vbCr Chr(13) 回车符
Lf vbLf Chr(10) 换行符
NewLine vbNewLine Chr(13) + Chr(10) 新行符

最新标准.net类库中全新的、C#和VB.net通用的、能自动适应环境变化的方法:Environment.NewLine

例:

Dim str1 as String = "你" & Environment.NewLine & "好"
  1. C#中/表示除法,若两边都是整数,则返回的也是整数,相当于整除

如10/3=3

但有一边是小数,返回的就是小数

如10.0/3=3.33333333

  1. 而vbnet中/不管两边什么类型都是返回小数

如10/3=3.33333333

要实现整除效果应该用\

如10\3=3

类型转换

  1. 对于兼容的类型,比如int和double都是数字类型,C#只有部分类型可以自动隐式转换,如intàdouble(小转大)。若doubleàint(大转小)会报错,需要手动显示转换,如age = (int)money;
  2. 不兼容的类型,如stringàdouble,可使用Convert函数,如左图

也可用double.Parse()函数,如右图

而vbnet基本都能自动转换,手动转换如Cdate,CDbl,Val等等,也可用Convert函数,X.Prase()

运算符

一元运算符:++ --

二元运算符:+-*/%

一元运算优先级高于二元运算,如9 * ++a,先算++a

posted @ 2023-09-18 09:38  Albert1654  阅读(75)  评论(0)    收藏  举报