金额大小写转化类
using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace ConsoleApplication1 { /// <summary> /// 类 名: MoneyHelper /// 版 本 号: V1.0 /// 作 者: 张远强 /// HomePage: http://www.mzwu.…
using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace ConsoleApplication1 { /// <summary> /// 类 名: MoneyHelper /// 版 本 号: V1.0 /// 作 者: 张远强 /// HomePage: http://www.mzwu.…
上边例子的结果为"五二百一一",而不是我的期望"五二一一",为什么呢?我们再来看一个例子: 结果: 五千二 一十一 也就是说,我们无法使用上边的代码对"二百一"进行替换。修改后正确的代码:
关于结构和类的区别其实是老生常谈,不过本文总结得较为全面,所以翻译过来给大家共享。 总结起来,两者共有如下区别: 1、结构是值类型,类则是引用类型。因此前者是放在栈(Stack)里,后者则仅仅是将引用地址存放在栈里,而具体的值则存放在堆(heap)里。如下图所示: 2、据第1点可以得出结论,那就是类对象通常用来传递大数据,而结构对象则用来传递小数据。 3、类可以被继承,而结构则不支持。 4、结构对象不能像类对象一样赋值为null。 5、结构不能像类一样定义析构器。 6、结构不能像类一样定义为抽象的。 7、在结构中不能重写方法,除非是object类型的如下方法:Equals()、GetHashCode()、GetType()、·ToString(),若要让结构具有多态特性,可以让其实现接口。…
使用dom-drag.js来拖动页面上的元素非常简单,只需一条语句即可完成: 此外,必须保证元素的position属性值为absolute或relative。看下边例子: 下载dom-drag.js:点击下载 更多关于dom-drag.js的例子:http://www.dynamicdrive.com/dynamicindex11/domdrag/
值类型数据还是引用类型数据?结构还是类?什么你须要使用它们呢?这不是C++,你可以把所有类型都定义为值类型,并为它们做一个引用。这也不是Java,所有的类型都是值类型。你在创建每个类型实例时,你必须决定它们以什么样的形式存在。这是一个为了取得正确结果,必须在一开始就要面对的重要决定。(一但做也决定)你就必须一直面对这个决定给你带来的后果,因为想在后面再对它进行改动,你就不得不在很多细小的地方强行添加很多代码。当你设计一个类型时,选择struct或者class是件简单的小事情,但是,一但你的类型发生了改变,对所有使用了该类型的用户进行更新却要付出(比设计时)多得多的工作。 这不是一个简单的非此及彼的选择。正确的选择取决于你希望你的新类型该如何使用。值类型不具备多态性,但它们在你的应用程序对数据的存取却是性能有佳;引用类型可以有多态性,并且你还可以在你的应用程序中为它们定义一些表现行为。考虑你期望给你的类型设计什么样的职能,并根据这些职能来决定设计什么样的类型。结构存储数据,而类表现行为。 因为很多的常见问题在C++以及Java里存在,因此.Net和C#对值类型和引用类型的做了区分。在C++里,所有的参数和返回值都是以值类型的进行传递的。以值类型进行传递是件很有效率的事,但不得不承受这样的问题:对象的浅拷贝(partial copying)(有时也称为slicing object)。如果你对一个派生的对象COPY数据时,是以基类的形式进行COPY的,那么只有基类的部分数据进行了COPY。你就直接丢失了派生对象的所有信息。即使时使用基类的虚函数。…
在讲述接口多态性时我们常看到类似的例子: 这边Anmial类的Move方法是孤立的,和其他成员没有关系,如果Anmial类还有一个Name属性,Move方法如下: 现在的问题是,Name不是IAction的成员,我们不能使用多态性对它进行赋值,那怎么给这个Name赋值呢?看下边方法: 这样接口多态性优势根本就无法显示出来了,解决方法是必须给Anmial添加一个非默认构造函数,在构造函数中必须可以给Name赋值!代码改后如下:
先来定义一个类MyFormat,它实现了ICustomFormatter和IFormatProvider接口,作用是将字符串转化为大写: 使用下看: 为什么下边一句没有发生作用?我们用Reflector来查看下String类的ToString(IFormatProvider provider)和Format(IFormatProvider provider, string format, params object args)两个方法代码: String.ToString(IFormatProvider provider)代码: String.Format(IFormatProvider provider, string format, params object args)代码:…
曾经一度为格式化输出而困惑,看着满天遍野的结构,都不敢去轻易触动。只能使用最安全,但是 低能的object.ToString()方法。终于忍受不了这种窘困的处境,下力气研究一番,也算是有点心得,希望和大家交流一下。 鉴于该格式化输出的结构过于繁琐,我不希望文章陷入条款的解释,于是,我从一个实际问题入手,一步一步地介绍格式化输出的概念,三个接口的意义,以及使用接口的一种模式(Pattern)。 1. PhoneNumber 类 假设我们有如下的一个类,用于存储我们的手机号码。该类提供了简单的ToString()实现,即直接返回含有短线(-)的电话号码。 2. 提供去掉短线的输出格式 (IFormattable)…
方法1:在SQL查询语句中拼接字段 方法2:在DataTable中新增一字段
VS2008默认生成类库项目时除了生成dll文件外,还会生成一个同名的pdb文件,它是一个程序数据库文件,保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。通过设置,我们可以让VS2008不生成pdb文件。设置步骤:打开类库项目属性页面→切换到生成选项卡→点击高级按钮→将调试信息一项设置为none。