C#基本语法

C#的基本语法和C/C++,Java的语法基本一致。下面只指出两者的不同之处。

C#使用using用来引入库文件,类似于Java的import以及C++的using namespace语句。同样C#也使用namespace来声明一个命名空间。

C#不像C++一样,有用于输入输出的关键字cin和cout,而是依赖于.NET类。最基本的类是System,这个类几乎所有的C#程序都要用到。

C#从一开始设计就是完全面向对象的,这一点和C++是不同的,因此一段C#代码都必须包含在一个类之中。

所有的C#代码的入口函数都是从下面这段代码开始的。

public static void Main()    //public修饰符是为了在任何地方都能访问该方法
{                            //static是为了使该方法无需实例化对象就能使用,否则无法访问入口函数
    return;                  //声明的返回值是void,因此return;就结束了,不要试图返回一个数值。
                             //当你把返回值声明为int的时候,才能返回一个数值
}    //但是这个返回值只能是void或者int。

需要注意的是C#的入口函数的Main的M是大写的。

C#中的所有变量在定义的时候都需要初始化,否则会出现语法错误,而不是像C/C++一样,只会产生一个警告。因此,我们说C#的安全性很高。这样能防止程序使用未初始化的垃圾值。

C#初始化变量的值一般有下面两种办法:

  1. 变量定义在类或者结构中,如果你忘记初始化,那么默认初始化为0。
  2. 在方法内部定义的局部变量必须初始化,否则错误。

C#的bool类型只有两个值true和false。在C#当中,绝不能使用0和1来代替false和true。

我们在使用C#的string引用类型的时候,感觉其操作和值类型是一致的,这是因为C#重载了运算符,并不是说string是一个值类型。例如我们可以使用+来连接两个字符串,以及使用=来给一个string变量赋值,产生一个新变量,而不是引用。

C#为路径地址等的麻烦的转义写法提供新的方式,就是在一串字符串的前面加上@符号。例如:

string path = @"C:\windows\system32";

C#的if语句之后的条件表达式必须是布尔类型的,不能是数值类型。这和C/C++语言不一样。

C#的switch语句相比C/C++的更加强大,它支持case后面的标签的类型包括字符串和整数。并且C#要求所有的case后面都必须有一个break;语句除非这条case标签后面是空的,那么可以没有break;例如:

switch(x)
{
    case 0:
    case 1:
    case 2: z = x + y;break;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安恒网络空间安全讲武堂

DDCTF2019

URL为 http://117.51.150.246/index.php?jpg=TmpZMlF6WXhOamN5UlRaQk56QTJOdz09,将参数解码

19320
来自专栏Java学习网

Java 8中增强For循环与forEach()方法学习

Java 8是https://ask.qcloudimg.com/http-save/yehe-1289394/zr4ip2dir2.jpegJava的一个重大...

22230
来自专栏安恒网络空间安全讲武堂

SUSCTF 2nd Web Wrtie Up

好的编辑器开发真的很快!!http://sus.njnet6.edu.cn:11002

26820
来自专栏CDA数据分析师

Go 语言为何不受待见?

作者 | Ben E. C. Boyter 译者 | 苏本如 责编 | 郭芮 本文转自 CSDN(ID:CSDNnews)

12020
来自专栏Layabox

LayaAir:用3D项目演示老项目如何适配微信小游戏

阅读本文前,如果不了解微信小游戏的基础创建流程和如何配置开发环境的,请先点击链接阅读《创建微信小游戏全流程介绍》或前往官网阅读LayaAir引擎官方技术文档,配...

46570
来自专栏芋道源码1024

恕我直言,在座的各位根本不会写 Java!包括我~

本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去...

14220
来自专栏互扯程序

Java四种线程池

b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。

25140
来自专栏牛客网

鹅厂移动客户端面经

14640
来自专栏芋道源码1024

链路追踪 SkyWalking 源码分析 —— Collector gRPC Server Manager

本文主要分享 Collector gRPC Server Manager。Collector 通过该管理器,管理启动的多个 gRPC Server,例如 Age...

16910
来自专栏CDA数据分析师

Python的高级特征你知多少?来对比看看

Python 是一种美丽的语言,它简单易用却非常强大。但你真的会用 Python 的所有功能吗?

8710

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励