C#基础 左手的ㄟ右手 2022-04-13 11:17 147阅读 0赞 #### 一、C\#简介 #### C\#是微软公司发布的一种面向对象的、[运行于.NET][.NET] Framework之上的高级程序设计语言。C\#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C\#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。 C\#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C\#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。 #### 二、Create a New C\# Project #### 环境:Visual Studio (VS) 编译 & 执行 C\# 程序 如果您使用 Visual [Studio.Net][] 编译和执行 C\# 程序,请按下面的步骤进行: > 1、启动 Visual Studio,在菜单栏上选择 File -> New -> Project,从模板中选择 Visual C\#,然后选择 Windows,选择 Console Application,为您的项目制定一个名称,然后点击 OK 按钮; > 2、新项目会出现在解决方案资源管理器(Solution Explorer)中,在代码编辑器(Code Editor)中编写代码,点击 Run 按钮或者按下 F5 键来运行程序。会出现一个命令提示符窗口(Command Prompt window),显示 输出结果。 或者通过命令符工具 > 打开一个文本编辑器,添加上面提到的代码,保存文件为 helloworld.cs > 打开命令提示符工具,定位到文件所保存的目录 > 键入 csc helloworld.cs 并按下 enter 键来编译代码 > 如果代码没有错误,命令提示符会进入下一行,并生成 helloworld.exe 可执行文件 > 接下来,键入 helloworld 来执行程序。 > 您将看到 “Hello World” 打印在屏幕上。 #### 三、C\# 代码 #### using System; namespace HelloWorldApplication { /* 类名为 HelloWorld */ class HelloWorld { /* main函数 */ static void Main(string[] args) { /* 我的第一个 C# 程序 */ Console.WriteLine("Hello World!"); Console.ReadKey(); } } } 1.`using System`:using 关键字用于在程序中包含 System 命名空间,一个程序一般有多个using 语句; 2.`namespace声明`:一个 namespace 是一系列的类,`HelloWorldApplication` 命名空间包含了类 HelloWorld; 3.`class 声明`:类 HelloWorld 包含了程序使用的数据和方法声明,类一般包含多个方法,方法定义了类的行为,在这里HelloWorld 类只有一个 Main 方法; 4.`Main 方法`:是所有 C\# 程序的 入口点,Main 方法说明当执行时 类将做什么动作,Main 方法通过语句 `Console.WriteLine("Hello World");` 指定了它的行为。 5.`WriteLine` 是一个定义在 System 命名空间中的 Console 类的一个方法,该语句会在屏幕上显示消息 “Hello,World!”; `Console.ReadKey();` 是针对 [VS.NET][] 用户,这使得程序会等待一个按键的动作,防止程序从 Visual Studio .NET 启动时屏幕会快速运行并关闭。 #### 四、C\# 基本语法 #### 1.using 关键字 在任何 C# 程序中的第一条语句都是:using System using 关键字用于在程序中包含命名空间,一个程序可以包含多个 using 语句 2. class 关键字 class 关键字用于声明一个类 3. C# 注释 多行注释以 /* 开始,并以字符 */ 终止,如下所示: /* This program demonstrates The basic syntax of C# programming Language */ 单行注释是用 '//' 符号表示。例如: //end class Rectangle 4.成员变量: 变量是类的属性或数据成员,用于存储数据 成员函数: 函数是一系列执行指定任务的语句,类的成员函数是在类内声明的 标识符: 标识符是用来识别类、变量、函数或任何其它用户定义的项目 5.C#关键字 关键字是 C# 编译器预定义的保留字,这些关键字不能用作标识符 #### 五、C\# 数据类型 #### 在 C\# 中,变量分为以下几种类型: **值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types)** **1.值类型(Value types)** 值类型(Value types): bool 布尔值 byte 8 位无符号整数 char 16 位 Unicode 字符 decimal 128 位精确的十进制值 double 64 位双精度浮点型 float 32 位单精度浮点型 int 32 位有符号整数类型 long 64 位有符号整数类型 sbyte 8 位有符号整数类型 short 16 位有符号整数类型 uint 32 位无符号整数类型 ulong 64 位无符号整数类型 ushort 16 位无符号整数类型 **2.引用类型(Reference types)** > 引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。 内置的引用类型有:**object**、**dynamic** 和 **string** -> 对象(Object)类型 对象(Object)类型 是 C# 中所有数据类型的终极基类Object 是 System.Object 类的别名。所以对象(Object)类型可以 被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。 装箱操作: 当一个值类型转换为对象类型时 拆箱操作: 当一个对象类型转换为值类型时 object obj; obj = 100; // 这是装箱 -> 动态(Dynamic)类型 可以存储任何类型的值在动态数据类型变量中,这些变量的类型检查是在运行时发生的 声明动态类型的语法:dynamic <variable_name> = value; 例如:dynamic d = 20; 动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的 类型检查是在运行时发生的 ->字符串(string)类型 字符串(string)类型 允许您给变量分配任何字符串值,字符串(string)类型是 System.String 类的别名。它是从 对象(Object)类型派生的,字符串(string)类型的值可以通过两种形式进行分配:引号和 @引号 例如: string str = "baidu.com"; 一个 @引号字符串:@"baidu.com"; C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待 比如: string str = @"C:\Windows"; 等价于:string str = "C:\\Windows"; 用户自定义引用类型有:class、interface 或 delegate #### 六、C\# 类型转换方法 #### C\# 提供了下列常用的内置类型转换方法 序号 方法 & 描 述 1 ToChar 把类型转换为单个 Unicode 字符类型 2 ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构 3 ToDecimal 把浮点型或整数类型转换为十进制类型 4 ToDouble 把类型转换为双精度浮点型 5 ToInt16 / ToInt32 / ToInt64 把类型转换为 16/32/64 位整数类型 6 ToString 把类型转换为字符串类型 7 ToType 把类型转换为指定类型 8 ToUInt16 把类型转换为 16 位无符号整数类型 #### 七、C\# 中 #### -> 运算符(算术、关系、逻辑、位、赋值、其他) -> 判断、循环、访问修饰符、方法 -> 数组、字符串、枚举、Class -> 继承、多态、重载 -> 接口 、命名空间、正则表达式、异常处理 和Java类似 **下面列出 C\# 一些重要的功能:** 布尔条件(Boolean Conditions) 自动垃圾回收(Automatic Garbage Collection) 标准库(Standard Library) 组件版本(Assembly Versioning) 属性(Properties)和事件(Events) 委托(Delegates)和事件管理(Events Management) 易于使用的泛型(Generics) 索引器(Indexers) 条件编译(Conditional Compilation) 简单的多线程(Multithreading) LINQ 和 Lambda 表达式 集成 Windows #### 八、Java 和 C\# 的相同点和区别 #### **相同点**: 都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态) **区别:** **1、开发环境** C\# 用Visual Studio,而JAVA用idea、Eclipse;跨平台Java用虚拟机,C\#用Framework;Java所有平台都支持,而C\#只有Windows和Linux支持。 很多网友认为C\#语言比Java更先进,如在泛型和linq上,这只能说C\#编程体验好。Sun初衷是把Java设计成一个跨平台的Runtime,而Microsoft只是把.Net做成Windows的一个扩展。 **2、目前市场上Java比C\#占优势** 很多大公司选用Java,如京东,淘宝和百度,现状是在企业更通用,Java做Web类开发很强大,C\#做窗体类开发更好。 **3、安全性** Java是开源的,因此在安全性能上是有一些欠缺的,C\#经常应用于后台内部网络的开发,C\#的安全性是很有保障的。 **语法上区别:** 1.C#中的命名空间是namespace,类似于Java中的package(包),在Java中导入包用import而c#中用using; 2.c#和Java都是从main函数入口的,但是c#中的main函数的首字母必须大写,而且有4种写法; 3.数据类型:Java跟c#基本都差不多,但是Java的String类型的首字母必须大写,而c#中可以小写也可以大写;还有布尔型,Java中是boolean,c#中是bool; 4.输出:c#有三种方式输出:Cosole.WriteLine()、Cosole.WriteLine(要输出的值)、 Cosole.WriteLine("格式字符串",变量列表); 前两种的用法 与Java中的System.out.println()方法的用法相同,第三种方式是根据占位符输出的,比Java更加方便; 5.控制流语句:c#跟Java类似,还有c#中的switch如果case后面有内容必须要有break;Java可以没有break; 6.方法中传递的参数:两种语言都使用值传递与引用传递,C#的引用传递的关键字是ref与out;ref侧重于修改,out侧重于输出,而Java中都以传值方式; 7.访问修饰符:C#中的访问修饰符与Java中的基本对应,但多出了一个internal,简而言之,C#有5种类型的可访问性,如下所示: public:成员可以从任何代码访问 protected:成员只能从派生类访问 internal:成员只能从同一程序集的内部访问 protected:成员只能从同一程序集内的派生类访问 private:成员只能在当前类的内部访问 8.由于C#中不存在final关键词,如果想要某个类不再被派生,你可以使用sealed关键词密封; 9.集合:两种语言都有集合ArrayList,还有通过键访问值的 Java 中是HashMap而 c# 中是HashTable;c#比Java多泛型集合List<T>与Dictionary<K,V> 更容易了,无需拆箱装箱了,更安全; 10.继承:Java中用关键字extends,c#只用":"就行了.调用父类的构造方法Java用super关键字,而c#用base关键字; 11.多态:抽象类和抽象方法两种语言都用abstract关键字,Java中另外一个类如果继承了它,实现直接重写此方法就可以;而c#必须加上关键字override实现, C#还比Java多一种虚方法来实现多态; 12.接口:都用关键字interface定义,Java实现用关键字implements;c#用":"实现。在C#中,接口内的所有方法默认都是公用方法。在Java中,方法声明可以 带有public修饰符(即使这并非必要),但在C#中 显式为接口的方法指定public修饰符是非法的; 13.C# 中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在Java中没有与C#中的as操作符等价的 操作符,as操作符与is操作符非常相似,但它更富有"进取心":如果类型正确的话,as操作符会尝试把被测试的对象引用转换成目标类型;否则它把变量引用设置成null。 [.NET]: http://xn--6kqq12l5ye.NET [Studio.Net]: http://Studio.Net [VS.NET]: http://VS.NET
相关 C#基础 目录 一.面向对象 1.什么是面向对象? 2.面向对象编程的四项基本原则为: 二.类和对象 1.类是一种活动的数据结构 2..一个简单的实例: 3..声明类 心已赠人/ 2024年03月30日 09:50/ 0 赞/ 25 阅读
相关 C#基础 目录 补充 C\基本语法 一.注释 二.格式字符串 三.字符串插值 四.变量 1.C\中的数据类型 2.声明变量 3.变量的命名规则 C\进阶语法 1. 系统管理员/ 2024年03月30日 09:20/ 0 赞/ 25 阅读
相关 C# 基础 目录 前言:上一篇我们主要讨论了.NET跟.NET Core的区别并决定为什么选择使用.NET Core 一.C\介绍 1.特点 2.改进了编程环境 二.一个简单的C 约定不等于承诺〃/ 2024年03月30日 09:12/ 0 赞/ 22 阅读
相关 c++基础 1.面向过程编程VS面向对象编程VS汇编语言 面向过程:复用性差,维护性差,扩展性差,但运行效率最高。 面向对象:复用性好,维护性好,扩展性好,灵活性好,但运行效率 深碍√TFBOYSˉ_/ 2022年09月28日 01:23/ 0 赞/ 47 阅读
相关 C#基础 C\环境:C\是.NET框架的一部分,且用于编写.NET应用程序,所以有必要了解一下.NET 。 .NET FrameWork是一个创新的平台,可以用来编写一下应用程序:W 待我称王封你为后i/ 2022年09月25日 15:20/ 0 赞/ 68 阅读
相关 C#基础 一、变量命名 变量的命名规则: 1、必须字母或@符号开头,不可数字开头; 2、后面可以跟任意字母数字下划线 (1)Int int=30报错,int @int=3 清疚/ 2022年08月18日 11:38/ 0 赞/ 71 阅读
相关 C#基础 C\编程语言是由微软公司的Anders Hejlsberg和 Scott Willamette领导的开发小组专门为.NET平台设计的语言,它可以使程序员移植到.NET上。这种 女爷i/ 2022年08月18日 03:10/ 0 赞/ 86 阅读
相关 C#基础 一、C\简介 C\是微软公司发布的一种面向对象的、[运行于.NET][.NET] Framework之上的高级程序设计语言。C\看起来与Java有着惊人的相似;它包括了诸 左手的ㄟ右手/ 2022年04月13日 11:17/ 0 赞/ 148 阅读
相关 C#基础 一、数据类型 1、值类型:值类型直接包含数据。 2、引用类型:引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。它们指的是一个内存位置。使用多个变量时,引用 喜欢ヅ旅行/ 2021年11月14日 00:12/ 0 赞/ 211 阅读
相关 C#基础 转载自:《[C\入门经典][C]》 非常详细的入门教程: 第1章-入门知识: C\是什么;.NET Framework是什么;VS2015安装教程;VS2015常用菜 落日映苍穹つ/ 2021年10月24日 03:42/ 0 赞/ 204 阅读
还没有评论,来说两句吧...