-
2016-12-29 21:10:24 black_yu 阅读数 17335
-
下载
1.极速下载地址:
http://download.csdn.net/detail/black_yu/9724914安装
很简单下一步到底,有打钩的都打钩即可。
启动与配置
不会自动添加快捷键,手动添加:
默认路径为C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\VCSExpress
启动后几个配置:
下一步,我们进行一些配置,让我们的软件更好用:
1.菜单栏:【工具】->【设置】->【专家设置】
2.菜单栏:【工具】->【选项】->左下角有一个显示所有设置,把它勾上,然后在【环境】-【字体和颜色】中,设置字体为Consolas,这个字体是等宽字体,对中英文标点,以及易混淆数字字母显示区分效果好。字体大小可以设置为12,默认的10有点小。
3.菜单栏:【工具】->【选项】->项目和解决方案,将总是显示解决方案勾上。
至此,基本配置就完成了,这些配置,有助于我们更好地写代码。免费注册产品
如果细心,你可能发现,软件会显示还有29天试用期,不用担心。点击菜单栏的【帮助】【注册产品】,点击在线获取注册秘钥即可,完全免费获取。不过最近,无法注册了,我就把我的秘钥分享给大家把。
秘钥:PQT8W-68YB2-MPY6C-9JV9X-42WJVC# 简介
C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。
C# 是由 Anders Hejlsberg 和他的团队在 .Net 框架开发期间开发的。
C# 是专为公共语言基础结构(CLI)设计的。CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。
下面列出了 C# 成为一种广泛应用的专业语言的原因:
现代的、通用的编程语言。
面向对象。
面向组件。
容易学习。
结构化语言。
它产生高效率的程序。
它可以在多种计算机平台上编译。
.Net 框架的一部分。C# 强大的编程功能
虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。
下面列出 C# 一些重要的功能:
布尔条件(Boolean Conditions)
自动垃圾回收(Automatic Garbage Collection)
标准库(Standard Library)
组件版本(Assembly Versioning)
属性(Properties)和事件(Events)
委托(Delegates)和事件管理(Events Management)
易于使用的泛型(Generics)
索引器(Indexers)
条件编译(Conditional Compilation)
简单的多线程(Multithreading)
LINQ 和 Lambda 表达式
集成 WindowsC# 环境
在这一章中,我们将讨论创建 C# 编程所需的工具。我们已经提到 C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。因此,在讨论运行 C# 程序的可用工具之前,让我们先了解一下 C# 与 .Net 框架之间的关系。
.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
如需了解每个组件的详细信息,请参阅微软(Microsoft)的文档。
C# 的集成开发环境(Integrated Development Environment - IDE)
微软(Microsoft)提供了下列用于 C# 编程的开发工具:
Visual Studio 2010 (VS)
Visual C# 2010 Express (VCE)
Visual Web Developer
后面两个是免费使用的,可从微软官方网址下载。使用这些工具,您可以编写各种 C# 程序,从简单的命令行应用程序到更复杂的应用程序。您也可以使用基本的文本编辑器(比如 Notepad)编写 C# 源代码文件,并使用命令行编译器(.NET 框架的一部分)编译代码为组件。
Visual C# Express 和 Visual Web Developer Express 版本是 Visual Studio 的定制版本,且具有相同的外观和感观。它们保留 Visual Studio 的大部分功能。C# Hello World 实例
一个 C# 程序主要包括以下部分:
命名空间声明(Namespace declaration)
一个 class
Class 方法
Class 属性
一个 Main 方法
语句(Statements)& 表达式(Expressions)
注释
让我们看一个可以打印出 “Hello World” 的简单的代码:
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
/* 我的第一个 C# 程序*/
Console.WriteLine(“Hello World”);
Console.ReadKey();
}
}
}
当上面的代码被编译和执行时,它会产生下列结果:
Hello World
让我们看一下上面程序的各个部分:
程序的第一行 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 不同的是,文件名可以不同于类的名称。编译 & 执行 C# 程序
如果您使用 Visual Studio.Net 编译和执行 C# 程序,请按下面的步骤进行:
启动 Visual Studio。
在菜单栏上,选择 File -> New -> Project。
从模板中选择 Visual C#,然后选择 空项目。
为您的项目制定一个名称,然后点击 OK 按钮。
新建一个类
新项目会出现在解决方案资源管理器(Solution Explorer)中。
在代码编辑器(Code Editor)中编写代码。
点击 Run 按钮或者按下 F5 键来运行程序。会出现一个命令提示符窗口(Command Prompt window),显示 Hello World。也可以使用命令行代替 Visual Studio IDE 来编译 C# 程序:
打开一个文本编辑器,添加上面提到的代码。
保存文件为 helloworld.cs。
打开命令提示符工具,定位到文件所保存的目录。
键入 csc helloworld.cs 并按下 enter 键来编译代码。
如果代码没有错误,命令提示符会进入下一行,并生成 helloworld.exe 可执行文件。
接下来,键入 helloworld 来执行程序。
您将看到 “Hello World” 打印在屏幕上。 -
2016-12-21 12:08:25 u013628121 阅读数 5130
-
C# 中文字符比较 or C#汉字比较 or C# 中文字符串比较 or C#中文名字比较
/// <summary>/// 类扩展/// </summary>public static class StringEx{/// <summary>/// 比较中文字符是否相等/// </summary>/// <param name="name1"></param>/// <param name="name2"></param>/// <returns></returns>public static bool ChinesComPare(this string name1,string name2){name1 = name1.Replace(" ", "");//去除掉名字直接的空格name2 = name2.Replace(" ", "");//去除掉名字直接的空格byte[] utf81 = Encoding.UTF8.GetBytes(name1);byte[] utf82 = Encoding.UTF8.GetBytes(name2);bool equal = utf81.IsEqual(utf82);return equal;}
/// <summary>/// 比较2个字节数组是否相等/// </summary>/// <param name="src"></param>/// <param name="dis"></param>/// <returns></returns>public static bool IsEqual(this byte[] src, byte[] dis){bool isEq = false;if (src.Length != dis.Length){isEq = false;}else{isEq = true;for (int i = 0; i < src.Length; i++){if (src[i] != dis[i]){isEq = false;break;}}}return isEq;}}
string n1 = "杨光";string n2 = "杨 光 ";if (n1.ChinesComPare(n2)){//true} -
2016-09-18 20:46:58 u013628121 阅读数 4360
-
// <summary>/// 创建固定大小的临时文件/// </summary>/// <param name="fileName">文件名</param>/// <param name="fileSize">文件大小</param>/// <param name="overwrite">允许覆写:可以覆盖掉已经存在的文件</param>public static void CreateFixedSizeFile(string fileName, long fileSize){//验证参数if (string.IsNullOrEmpty(fileName) || new[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }.Contains(fileName[fileName.Length - 1]))throw new ArgumentException("fileName");if (fileSize < 0) throw new ArgumentException("fileSize");//创建目录string dir = Path.GetDirectoryName(fileName);if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))Directory.CreateDirectory(dir);//创建文件FileStream fs = null;try{fs = new FileStream(fileName, FileMode.Create);fs.SetLength(fileSize); //设置文件大小}catch{if (fs != null){fs.Close();File.Delete(fileName); //注意,若由fs.SetLength方法产生了异常,同样会执行删除命令,请慎用overwrite:true参数,或者修改删除文件代码。}throw;}finally{if (fs != null) fs.Close();}}/// <summary>/// 读取大文件用,读取文件前面指定长度字节数/// </summary>/// <param name="filePath">文件路径</param>/// <param name="readByteLength">读取长度,单位字节</param>/// <returns></returns>public byte[] ReadBigFile(string filePath,int readByteLength){FileStream stream = new FileStream(filePath,FileMode.Open);byte[] buffer = new byte[readByteLength];stream.Read(buffer, 0, readByteLength);stream.Close();stream.Dispose();return buffer;//string str = Encoding.Default.GetString(buffer) //如果需要转换成编码字符串的话}/// <summary>/// 普通文件读取方法/// </summary>/// <param name="path"></param>/// <returns></returns>public string ReaderFile(string path){string fileData = string.Empty;///读取文件的内容StreamReader reader = new StreamReader(path, Encoding.Default);fileData = reader.ReadToEnd();reader.Close();reader.Dispose();return fileData;}
-
原 C#基础2019-03-21 08:31:30 lairikeqi 阅读数 15168
-
一、C#简介
C#是微软公司发布的一种面向对象的、运行于.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。
-
2015-12-23 10:20:42 da_keng 阅读数 9849
-
获取服务
首先要添加引用:
System.ServiceProcess
然后导入命名空间:using System.ServiceProcess;
//获得服务集合 var serviceControllers = ServiceController.GetServices(); //遍历服务集合,打印服务名和服务状态 foreach (var service in serviceControllers) { Console.WriteLine("ServiceName:{0}\t\tServiceStatus:{1}", service.ServiceName, service.Status); }
启动服务
//获取指定服务,若服务状态不是Runing就Start该服务 var server = serviceControllers.FirstOrDefault(service => service.ServiceName == serviceName); if (server!=null && server.Status != ServiceControllerStatus.Running) { server.Start(); }
开一个线程定期检测服务状态
static void Main() { ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(true), new WaitOrTimerCallback(TryStartRServer3), null, 30000, false); } private static void TryStartRServer3(object state, bool timedout) { var serviceControllers = ServiceController.GetServices(); var server = serviceControllers.FirstOrDefault(service => service.ServiceName == "RServer3"); if (server != null && server.Status != ServiceControllerStatus.Running) { server.Start(); } }

c# 模板类 相关内容

c# 模板类 相关内容

c# 模板类 相关内容

c# 模板类 相关内容

c# 模板类 相关内容