c#学习
1 c#与.Net框架(.Net Framework)
Net 框架是一个创新的平台,能帮您编写出下面类型的应用程序:
Windows 应用程序
Web 应用程序
Web 服务
主要由三部分组成:
(1)编程工具:IDE、编译器、调试器、网站开发服务端技术(ASP.NET,WCF等);
(2)执行环境—CLR(公共语言运行库):内存管理、垃圾回收、即时编译等;
(3)BCL(基类库):在.NET框架中使用的一个大的类库,也可以在程序中使用;
可以看到CLR是.NET的核心组件。它在操作系统的顶层,负责管理程序的执行:
(1)托管代码:使用.NET框架编写的代码成为托管代码(Managed Code),需要CLR。
(2)非托管代码:不在CLR控制下运行的代码,比如Win32 C/C++ DLL,称为非托管代码(Unmanaged Code)
2 c#程序结构
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
/* 我的第一个 C# 程序*/
Console.WriteLine("Hello World");
Console.ReadKey();
}
}
}
-
程序的第一行 using System; - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句。
-
下一行是 namespace 声明。一个 namespace 里包含了一系列的类。HelloWorldApplication 命名空间包含了类 HelloWorld。
-
下一行是 class 声明。类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。在这里,HelloWorld 类只有一个 Main 方法。
-
下一行定义了Main 方法,是所有 C# 程序的 入口点。Main 方法说明当执行时 类将做什么动作。
-
下一行 /…/ 将会被编译器忽略,且它会在程序中添加额外的 注释。
-
Main 方法通过语句 Console.WriteLine(“Hello World”); 指定了它的行为。
WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。该语句会在屏幕上显示消息 “Hello, World!”。 -
最后一行 Console.ReadKey(); 是针对 VS.NET 用户的。这使得程序会等待一个按键的动作,防止程序从 Visual Studio .NET 启动时屏幕会快速运行并关闭。
注意:
C# 是大小写敏感的。
所有的语句和表达式必须以分号(;)结尾。
程序的执行从 Main 方法开始。
与 Java 不同的是,文件名可以不同于类的名称。
3 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#程序中第一句都是
using System;
using 关键字用于在程序中包含命名空间。一个程序可以包含多个 using 语句。
其他的语法也没有什么特殊的地方了;再就是关键字多了很多个,遇到自己再记忆一下就可以了;
另外一个比较特殊的地方是将main函数,一个程序的函数入口写在了一个namespace中,而且还写在了一个class中,成为一个类的成员方法;
4 c#的文件的输入和输出
c#的数据类型,循环,判断,类,结构体,枚举和c++差不多,也些许不同,在后面自己要写c#代码的时候再翻出来随时学习即可;
1 I/O类
System.IO 命名空间有各种不同的类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。
2 FileStream类
System.IO 命名空间中的 FileStream 类有助于文件的读写与关闭。该类派生自抽象类 Stream。
您需要创建一个 FileStream 对象来创建一个新的文件,或打开一个已有的文件。创建 FileStream 对象的语法如下:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
filemode:
Append:打开一个已有的文件,并将光标放置在文件的末尾。如果文件不存在,则创建文件。
Create:创建一个新的文件。如果文件已存在,则删除旧文件,然后创建新文件。
CreateNew:指定操作系统应创建一个新的文件。如果文件已存在,则抛出异常。 Open:打开一个已有的文件。如果文件不存在,则抛出异常。
OpenOrCreate:指定操作系统应打开一个已有的文件。如果文件不存在,则用指定的名称创建一个新的文件打开。
Truncate:打开一个已有的文件,文件一旦打开,就将被截断为零字节大小。然后我们可以向文件写入全新的数据,但是保留文件的初始创建日期。如果文件不存在,则抛出异常。
FileAccess:
Read,ReadWrite和Write
FileShare:
FileShare 枚举的成员有:
Inheritable:允许文件句柄可由子进程继承。Win32 不直接支持此功能。
None:谢绝共享当前文件。文件关闭前,打开该文件的任何请求(由此进程或另一进程发出的请求)都将失败。
Read:允许随后打开文件读取。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取的请求(由此进程或另一进程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
ReadWrite:允许随后打开文件读取或写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取或写入的请求(由此进程或另一进程发出)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
Delete:允许随后删除文件
5 c#导入第三方库dll文件(重要)
在运行别人项目的时候要报一些“未能找到类型或命名空间名 (是否缺少 using 指令或程序集引用?)”是错误,需要把相应的dll库引进来,所以这个就显的很有必要了;
- 用鼠标右击项目下的“引用”
- 点击“添加引用”
按上图所示 - 点击“浏览”,导入本地的dll文件