首页 > 编程语言 >C# 学习

C# 学习

时间:2023-09-18 09:45:45浏览次数:39  
标签:VB string C# 转义 学习 Chr net

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

标签:VB,string,C#,转义,学习,Chr,net
From: https://www.cnblogs.com/alcro/p/17710800.html

相关文章

  • 【.NET8】访问私有成员新姿势UnsafeAccessor(上)
    前言前几天在.NET性能优化群里面,有群友聊到了.NET8新增的一个特性,这个类叫UnsafeAccessor,有很多群友都不知道这个特性是干嘛的,所以我就想写一篇文章来带大家了解一下这个特性。其实在很早之前我就有关注到这个特殊的特性,但是当时.NET8还没有正式发布,所以我也没有写文章,现在.NET8......
  • html5 的 webScoket 和 C# 建立Socket连接
    html5的webScoket和C#建立Socket连接最近使用的web项目中,需要服务器直接触发前端显示效果。所以研究了一下websocket:名词解释:WebSocketWebSocket协议是一种双向通信协议,它建立在TCP之上,同http一样通过TCP来传输数据,但是它和http最大的不同有两点:1.WebSocket是一种双向......
  • HCIP-交换-生成树协议
    BUM帧(Broadcast,Unknownunicast,Multicast)制定广播、未知单播及组播帧。stpdisable禁用生成树。STP生成树协议STP概述作用:保证网络可靠性的前提下,解决二层环路带来的风险。二层环路带来的风险:广播风暴MAC地址漂移STP遵循的协议:IEEE802.1d工作原理:STP通过交互......
  • 每天一个linux命令(48):watch命令
    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件......
  • 每天一个linux命令(50)0:crontab命令
    前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了......
  • 5.0 CRC32校验技术概述
    CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,并以此来判定特定程序内存是否发生了变化,如果发生变化......
  • 搭建CUDA、CUDNN、Pytorch环境(Windows10/11)
    摘要:搭建Windows系统下Cuda+CUDNN环境,注意C盘一定要大,建议1T+SSD参考:  https://blog.csdn.net/weixin_61164016/article/details/127564466  https://blog.csdn.net/qq_43308156/article/details/127479544  https://blog.csdn.net/weixin_45068330/article/details/121......
  • 每天一个linux命令(40):wc命令
    Linux系统中的wc(WordCount)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。1.命令格式:wc [选项]文件...2.命令功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准......
  • TienChin 渠道管理-渠道导入
    ChannelController@PostMapping("/importTemplate")voidimportTemplate(HttpServletResponseresponse){ExcelUtil<Channel>util=newExcelUtil<>(Channel.class);util.importTemplateExcel(response,"渠道数据");}@Log(tit......
  • TienChin 渠道管理-渠道页面完善
    最后附上渠道管理的数据installSQL语句:INSERTINTOTienChin.tienchin_channel(channel_id,channel_name,status,remark,type,create_by,update_by,create_time,update_time,del_flag)VALUES(3,'小红书渠道',1,'小红书渠道',1,'qudao','qu......