C#编程之道
文章平均质量分 82
Zevin
这个作者很懒,什么都没留下…
展开
-
何为中间语言IL?
一直以来,对于.NET与C#之间的关系我都存在着疑惑,为此,今天专门仔细看了一下以前最容易忽略掉的书本“前言”部分,予以澄清:) 首先,c#的结构和方法论反映了.NET的基础方法论,在很多情况下,c#的特定功能取决于.net的功能,依赖于.net基类。通俗一点说, (1).net framework 是一个功能丰富的开发平台,可开发,部署和执行分布式应用程原创 2010-03-21 22:45:00 · 1218 阅读 · 1 评论 -
利用接口实现多重继承
<br />using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 使用接口实现多重继承{ public interface IPeople { string Name { get; set; } string Sex原创 2011-02-27 23:45:00 · 772 阅读 · 0 评论 -
使用接口实现多继承
<br />using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 使用接口实现多重继承{ public interface IPeople { string Name { get; set; } string Sex原创 2011-03-01 19:35:00 · 733 阅读 · 0 评论 -
c# GC管理
<br />一直觉得C++的资源管理让人很痛苦。我不得不看很多经验性手册,以保证能很好的进行内存等资源的管理。相比之下,.Net(CLR)引入了垃圾回收机制(GC),来完成托管堆资源的回收,这毫无疑问,大大减轻了开发人员的负担。但是,天下没有绝对免费的午餐,要想清楚地了解GC的运行,很好的掌握资源的管理工作(特别是涉及到非托管资源的时候),对我这种AI没有突破性进展的人来说,并不是一件很容易的事情。<br />恩。废话不说,来具体看看CLR的资源管理机制。首先,来看看CLR对内存(托管堆)的分配。最简单的说转载 2011-02-12 19:01:00 · 828 阅读 · 0 评论 -
C# 中将字符串转换为字符数组的两种方式及字符串的复制
<br />using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 数组与算法举例{ class Program { static void Main(string[] args) { string str1 = "fafaaf"; string str2原创 2011-02-22 22:06:00 · 22476 阅读 · 0 评论 -
C#中枚举和位域的使用范例
<br />using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;namespace 枚举及位域使用实例{ //定义一个枚举 public enum RootVegetables { 山药=0, 萝卜=1, 青菜=2, 西红柿原创 2011-03-13 14:05:00 · 3537 阅读 · 1 评论 -
接口的一般性使用方式
<br />using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Reflection_Example{ public interface Ioriginal { //在接口定义中,不允许声明成员上的修饰符。接口的成员总是公共的,不能声明为虚拟或静态。 string MyString原创 2011-03-11 12:13:00 · 616 阅读 · 0 评论 -
设计模式之Factory
工厂模式定义:提供创建对象的接口.为何使用?工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。我们以类Sample为例, 如果我们要创建Samp原创 2011-02-22 22:53:00 · 519 阅读 · 0 评论 -
C#中堆和栈的区别分析(有待更新总结)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)转载 2010-07-08 17:40:00 · 1791 阅读 · 0 评论 -
面向对象封装,继承,多态应用大烩菜
虽然乱了点,凑合看吧:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 面向对象之继承{ /*定义一个父类*/#region Father Class public class Father { //Define the field private string str = "";原创 2011-02-27 01:50:00 · 650 阅读 · 0 评论 -
C# 反射(有待更新)
<br />反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 <br /> <br />程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构。 <br />应用程序结构分为应用程序域—程序集—模块—类型转载 2011-02-25 19:27:00 · 558 阅读 · 0 评论 -
C#面向对象编程的三大特性之-----继承
<br /> 作为C#面向对象编程的三大特性之一的继承,在C#编程中有着举足轻重的位置,它是学习面向对象编程的核心概念。<br />任何类都可以从另一个类继承,也就是说,这个类拥有它继承的类的所有成员。<br /> <br />一,类成员的访问控制:<br /> <br /> 在OOP中,被继承的类称为父类(也就是基类),C#中的对象只能派生于一个基类。在继承一个基类时,派生类不能访问基类的私有成员,但可以访问其公共成员,而且派生类和外部代码都可以访问公共成员,这就是说,如果只使用public, p原创 2010-08-16 01:03:00 · 1622 阅读 · 0 评论 -
C#面向对象编程三大基本特征之-----多态
当一个派生类继承于一个基类时,该派生类在方法和属性上与基类有一定的重合,所以这些派生类的实例对象可以直接调用基类的方法,而无须进行类型转换。 多态性则更推进了一步。在派生于同一个基类的不同对象上执行任务时,多态性是一种极为有效的方式。 所谓多态,就是把某个基本类型的变量(类实例)赋予其派生类型的变量,然后通过强制类型转化把基类的变量转化为派生类型的变量,然后调用派生类的方法。 要注意的是,在使用多态时,并不是只有共享一个父类的类才能利用多态性。只要子类和孙子类在继承层次结构中有一个原创 2010-06-29 01:21:00 · 1879 阅读 · 0 评论 -
.net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解
<br />尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解栈和堆的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。<br />在.NET framework环境下,当我们的代码执行时,内存中有两个地方用来存储这些代码。假如你不曾了解,那就让我来给你介绍栈(Stack转载 2010-07-08 17:32:00 · 754 阅读 · 0 评论 -
委托的用法
委托是一种可以把引用存储为函数的类型,也就是说可以把函数作为参数来传递。委托主要用于事件和事件传递。 委托的声明类似于函数,但是不带函数体,且要用delegate关键字(delegate double myDelegate(double a, double b))。委托声明指定一个函数签名,其中包含一个函数返回类型和参数列表。 定义了委托后,就可以声明该委托类型的变量(myDele原创 2010-05-16 11:45:00 · 656 阅读 · 0 评论 -
C#中自定义类(类成员)的使用,以及如何定制自己的异常信息
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{ public class myclass { public string name; private int intVal; public int Val {原创 2010-07-13 16:20:00 · 2559 阅读 · 0 评论 -
多维数组与变长数组的使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 多维数组的定义与使用{ class Program { static void Main(string[] args) {原创 2010-05-23 22:43:00 · 1254 阅读 · 0 评论 -
C#中按引用传递与按值传递的区别,以及ref与out关键字的使用
/给三个整数从小到大排序并求和及其平均值//其中,三个待求整数及其排序的结果由引用参数传递;其和由输出参数传递;平均值由返回值返回。//在Main()方法中实现三个待求整数的输入及结果的输出//目的:定义方法;调用方法;;理解形参和实参的引用传递关系;熟悉引用参数和输出参数的使用。using System;class Class1 { //x,y,z是形参,按值传递原创 2010-05-27 00:01:00 · 5357 阅读 · 1 评论 -
C#中几种常用的处理字符串的方法总结
主要有以下几种:string.ToCharArray() (把string获得一个可写的字符数组)string.ToLower(); string.ToUpper()(转换字符串大小写)string.Trim(); string.TrimStart(); string.TrimEnd()(剪切字符串左右两端的指定字符)string.PadLeft(); string.PadRight()(在字符串左右两端添加指定长度的指定字符)指定字符通常用定义一个新的字符数组来统一实现string.Split();(把字原创 2010-07-22 00:40:00 · 1242 阅读 · 0 评论 -
利用.NET类库中的流类对文件进行操作
读写文本文件,是许多.NET应用程序的基础性工作。文件可以用于在应用程序的实例之间存储数据,或者在应用程序之间传递数据。文件还可以存储用户和应用程序配置,以便在下一次运行应用程序时检索他们。此外,还可以利用.NET类对有分隔符的文件和数据进行处理。创建、拷贝、删除、读写文件,可以通过利用System.IO命名空间中的以下9种流类来实现:File, FileInfo, Directory, DirectoryInfo, Path, FileStream, StreamReader, StreamWriter,原创 2010-07-28 23:24:00 · 1723 阅读 · 0 评论 -
C#面向对象编程三大基本特征之-----封装
在面向对象的编程中,首先要清楚地理解面向对象编程的三个基本特征: 封装, 继承, 多态!封装:更确切地说,是对象封装。就是每个对象都包含自己进行某种操作时所需要的所有信息,而不依赖于其他对象来完成该操作。 下面,通过介绍C#的类,来充分理解对象封装的概念。 所谓“对象”,形象地说,我们可以把它理解为一块积木。设计积木的人需要设计积木的外观与形状,还有内部的材质。堆积木的人对于内部的材质并不关心,他们只需要根据不同的外观与形状来决定堆放的位置。因此,对于开发者而言,要设计面向对象的程序转载 2010-06-09 00:11:00 · 4879 阅读 · 2 评论 -
C#中堆和栈的区别分析(有待更新总结2)
线程堆栈:简称栈 Stack托管堆: 简称堆 Heap使用.Net框架开发程序的时候,我们无需关心内存分配问题,因为有GC这个大管家给我们料理一切。如果我们写出如下两段代码:代码段1:publicint AddFive(int pValue) { int result; result转载 2010-07-13 15:53:00 · 5187 阅读 · 6 评论