• 类似C/C++,面向对象
  • 类似Java,功能强大,有很多好用的特性

Hello, world!

hello.cs:

using System;
namespace HelloWorldApplication//命名空间声明
{
    class HelloWorld//类
    {
        static void Main(string[] args)//主函数
        {
            /* Print *///注释
            Console.WriteLine("Hello, World!");//打印
            Console.ReadLine();//等待输入提示程序结束
        }
    }
}

与Java不同的是,C#的文件名可以不同于类的名称。

基本语法

经典实例

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        /* 成员变量 */
        double length;
        double width;
        /* 成员函数 */
        public void Acceptdetails()
        {
            length = 4.5;
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }

    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            /* 主函数 */
            Rectangle r = new Rectangle();//实例化
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

  • 标识符必须以字母、下划线或@开头,后面可以跟一系列的字母、数字( 0 – 9 )、下划线( _ )、@。
  • 标识符必须不包含任何嵌入的空格或符号,比如 ? – + ! # % ^ & * ( ) [] { } . ; : ” ‘ / \。
  • 标识符不能是 C# 关键字。除非它们有一个@前缀。 例如,@if是有效的标识符,但if不是,因为if是关键字。
  • 不能与C#的类库名称相同。

C#关键字

image

数据类型

值类型(Value types)

与C/C++中的数据类型完全相同。

可以用sizeof(value type)获取大小,这也和C/C++中一样。

引用类型(Reference types)

对象(Object)类型

对象类型是C#通用类型系统(Common Type System – CTS)中所有数据类型的终极基类。Object是System.Object类的别名。所以对象类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱

Object obj;
obj = 100;//装箱

动态(Dynamic)类型

您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

dynamic <variable_name> = value;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

字符串(String)类型

字符串类型允许您给变量分配任何字符串值。字符串类型是System.String类的别名。它是从对象类型派生的。字符串类型的值可以通过两种形式进行分配:引号和@引号。

String str = "kirin-dev";
@"kirin-dev";

C#string字符串的前面可以加@(称作”逐字字符串”)将转义字符()当作普通字符对待

@字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内

指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C#中的指针与 C/C++中的指针有相同的功能。

type* identifier;

类型转换

  • 隐式类型转换:C#默认的以安全方式进行的转换,不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
  • 显式类型转换:即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

image

变量、常量、运算符、判断、循环

C#变量声明、常量声明、运算符、判断语句、循环语句、与C/C++完全相同。

封装

原文地址:http://www.cnblogs.com/kirin-dev/p/C-Sharp_Learning.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性