C# 一些重要的功能
- 布尔条件(Boolean Conditions)
- 自动垃圾回收(Automatic Garbage Collection)
- 标准库(Standard Library)
- 组件版本(Assembly Versioning)
- 属性(Properties)和事件(Events)
- 委托(Delegates)和事件管理(Events Management)
- 易于使用的泛型(Generics)
- 索引器(Indexers)
- 条件编译(Conditional Compilation)
- 简单的多线程(Multithreading)
- LINQ 和 Lambda 表达式
- 集成 Windows
/*
C# 是大小写敏感的。
所有的语句和表达式必须以分号(;)结尾。
程序的执行从 Main 方法开始。
与 Java 不同的是,文件名可以不同于类的名称。
*/
// using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句。
using System;
//一个 namespace 里包含了一系列的类。HelloWorldApplication 命名空间包含了类 HelloWorld。
namespace HelloWorldApplication
{
/* 类名为 HelloWorld */
//类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。在这里,HelloWorld 类只有一个 Main 方法
class HelloWorld
{
/* main函数 */
//Main 方法,是所有 C# 程序的 入口点。Main 方法说明当执行时 类将做什么动作。
static void Main(string[] args)
{
/* 我的第一个 C# 程序 */
// Console.WriteLine("Hello World"); 指定了它的行为.WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。
Console.WriteLine("Hello World!");
// Console.ReadKey(); 是针对 VS.NET 用户的。这使得程序会等待一个按键的动作,防止程序从 Visual Studio .NET 启动时屏幕会快速运行并关闭。
Console.ReadKey();
}
}
}
.Net 框架(.Net Framework)
.Net 框架是一个创新的平台,能帮您编写出下面类型的应用程序:
Windows 应用程序
Web 应用程序
Web 服务
.Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互。
.Net 框架由一个巨大的代码库组成,用于 C# 等客户端语言。下面列出一些 .Net 框架的组件:
- 公共语言运行库(Common Language Runtime - CLR)
- .Net 框架类库(.Net Framework Class Library)
- 公共语言规范(Common Language Specification)
- 通用类型系统(Common Type System)
- 元数据(Metadata)和组件(Assemblies)
- Windows 窗体(Windows Forms)
- ASP.Net 和 ASP.Net AJAX
- ADO.Net
- Windows 工作流基础(Windows Workflow Foundation - WF)
- Windows 显示基础(Windows Presentation Foundation)
- Windows 通信基础(Windows Communication Foundation - WCF)
- LINQ
C# 的集成开发环境(Integrated Development Environment - IDE)
Visual Studio 2010 (VS) ------------------- Testing the IDE
Visual C# 2010 Express (VCE)
Visual Web Developer
C# 程序结构
一个 C# 程序主要包括以下部分:
命名空间声明(Namespace declaration)
一个 class
Class 方法
Class 属性
一个 Main 方法
语句(Statements)& 表达式(Expressions)
注释
C# 文件的后缀为 .cs。
//以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。让我们来看看一个 矩形(Program)类的实现,并借此讨论 C# 的基本语法:
//C在任何 C# 程序中的第一条语句都是
using System;
//Area compute
namespace ConsoleApp1
{
class Program
{
double length;
double width;
public void Acceptdatails() {
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)
{//实例化一个类
Program r = new Program();
r.Acceptdatails();
r.Display();
Console.ReadLine();
}
}
}
标识符
标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:
- 标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
- 标识符中的第一个字符不能是数字。
- 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。
- 标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的
- 标识符,但 if 不是,因为 if 是关键字。
- 标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
- 不能与C#的类库名称相同。
C# 数据类型
在 C# 中,变量分为以下几种类型:
- 值类型(Value types):int char,float
- 引用类型(Reference types)
它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。
object: object obj; obj = 100; // 这是装箱
dynamic:可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。 dynamic d = 20;
对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。
string :允许您给变量分配任何字符串值.字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。 String str = “runoob.com”; or @“runoob.com”; or string str = @“C:\Windows”;
- 指针类型(Pointer types):变量存储另一种类型的内存地址
using System;
namespace ConsoleApp1
{
class ExecuteRectangle {
static void Main(string[] args)
{
//geting type length
Console.WriteLine("Size of int:{0}", sizeof(int));//4
Console.WriteLine("Size of char:{0}", sizeof(char));//2
Console.WriteLine("Size of bool:{0}", sizeof(bool));//1
Console.WriteLine("Size of byte:{0}", sizeof(byte));///1
Console.WriteLine("Size of double:{0}", sizeof(double));//8
Console.WriteLine("Size of float:{0}", sizeof(float));//4
Console.WriteLine("Size of long:{0}", sizeof(long));//8
Console.WriteLine("Size of sbyte:{0}", sizeof(sbyte));//1
Console.WriteLine("Size of ulong:{0}", sizeof(ulong));//8
Console.WriteLine("Size of uint:{0}", sizeof(uint));//4
Console.WriteLine("Size of ushort:{0}", sizeof(ushort));//2
Console.ReadLine();
}
}
}