03 2013 档案

摘要:HtmlHelper方法是ASP.NET MVC中非常强大的特性,有了这个特性,我们就能更加随心所欲的定制自己的页面。 自定义自己的HtmlHelper方法通常有三种, 像是:一.Razor语法 采用Razor的方式非常直观,像是这样:@model IEnumerable<MusicShop.Models.Album>@{ ViewBag.Title = "Index";}@helper Truncate(string input, int length){ if (input.Length <= length) { @input; } else ... 阅读全文
posted @ 2013-03-30 19:41 文酱 阅读(10387) 评论(6) 推荐(2)
摘要:OOP的类型其实可以用这样的等式:数据 + 方法,数据决定类的属性,方法决定类的行为。方法在类型设计中至关重要,因为它决定了该类的功能。 C#的方法除了拥有一般OOP语言都会有的构造器方法外,还具有C++的操作符重载方法,而且它本身也有自己的特有方法:转换操作符方法,扩展方法和分部方法。 我们先来了解一下构造器方法。1.构造器方法 C#的构造器和java是一样的,主要的作用就是初始化成员变量,就连构造器的加载顺序也是一样,只是有些地方的说法不同。 我们都知道,抽象类的默认构造器访问权限是protected,而一般类都是public(记住,是默认构造器,如果是自定义构造器,请一定要写上publi 阅读全文
posted @ 2013-03-15 17:24 文酱 阅读(445) 评论(0) 推荐(0)
摘要:现在总算是进展到OOP最重要的类型了,感觉很兴奋但又困惑,因为C#中有很多与其他OOP语言像是java大不相同的处理。1.可见性 C#中的可见性很多与java重叠并且意义相同,但有一个特别的internal(internal其实并不特别)。internal表示仅对定义程序集(assembly)中的所有代码可见,至于其他程序集不可见。我的第一眼感觉就是java的默认访问权限,即包访问权限,至少它们是类似的。事实上,CLR中的程序集的确对应包,因为它的定义就是一个或多个模块/资源文件的逻辑性分组,而且是重用,安全性及版本控制的最小单元,这些都符合包的特点。正如包访问权限是java的默认权限一样,C 阅读全文
posted @ 2013-03-14 23:27 文酱 阅读(3440) 评论(0) 推荐(2)
摘要:装箱(boxing)机制是一个值得单独拿出来讨论的话题,因为忽略它,我们会在不知不觉间犯下很大的错误。先说说装箱的过程:会先在堆中分配好内存,该内存大小为值类型所有字段和添加的类型对象指针以及同步块索引所需的字节,然后将值类型字段复制到这块新分配的内存中,接着返回对象的地址值,即该对象的引用。拆箱并不是装箱的逆操作:拆箱只是获取一个引用,该引用指向值类型的字段,它并不要求复制字段,复制字段实际上拆箱之后的动作,但这个动作是一定会发生。 装箱设计到字段的复制,所以需要特别小心。但C#中有一个隐式装箱机制,使得我们很多时候防不胜防。所以,最好的做法就是显式的进行转换,而不是交给编译器。 如果大家. 阅读全文
posted @ 2013-03-14 15:44 文酱 阅读(1586) 评论(3) 推荐(1)
摘要:要了解一门编程语言,首先就要了解它的类型。我们知道,C#一共分为两大类型:值类型和引用类型,但值类型并不单纯是我们java中的基本数据类型那么简单,有关于是否使用值类型还是个值得讨论的问题:因为装箱机制。C#的值类型还能够自定义方法,甚至能够实现引用类型的接口类型!这已经超出了我的想象范围了! 先来点基础的东西:基本内容. 文档是我们学习的好帮手,在C#的文档中,我们必须注意,凡是引用类型的,名字都是"xx类",凡是值类型的,就叫"xx结构"或"xx枚举"。 很多时候,我们的初始化操作的右值是表达式。如果左值是值类型,那么它的值就是表 阅读全文
posted @ 2013-03-14 10:48 文酱 阅读(1908) 评论(6) 推荐(0)
摘要:在C#中,delegate是一个神奇的关键字,值得拿出来单独作为一个话题。一.基本内容 调用(invoke)委托,相当于调用委托所绑定的方法,一个委托可以绑定多个方法,使用"+="就可以向委托中添加新的方法,使用"-="可以从委托中删除方法:public delegate void Print();class Program{ public static void Main(String[] args){ Print print = PrintMethod1; print += PrintMethod2; print(); ... 阅读全文
posted @ 2013-03-12 00:37 文酱 阅读(26793) 评论(6) 推荐(8)
摘要:C#中的类型一共分为两大类型:值类型和引用类型。值类型包括:简单类型,结构类型和枚举类型,其中简单类型又包括:整数类型,实数类型(double,float,decimal),布尔类型(bool),字符类型。这里比较陌生的就是decimal,它表示小数,使用的时候必须在数字后面添加后缀:M(float同理,添加F),否则会被当做double处理。结构类型就是我们以前的结构体,定义的方式也是一样的:public struct Student{ public String name; public int number;};访问结构类型的成员像是这样:Student.name。结构类... 阅读全文
posted @ 2013-03-11 16:29 文酱 阅读(2426) 评论(2) 推荐(2)
摘要:今天刚学C#,写下我的第一个程序:class Program{ public static void Main(String[] args){ Console.WriteLine(10.0); }} 作为一名java程序员,C#的写法是有点差异,常用的System.out.println()被替换成:Console.WriteLine(),而且C#的规范要求方法的首字母大写,但在java中这是类的命名规则。 这些都是小问题,很快就习惯了,但我一运行这个代码,就发现我的输出变成了:10! 原来,在C#这里,10.0会当成10来处理,如果我们想要正确的输出10.0,就要利用格式... 阅读全文
posted @ 2013-03-11 00:33 文酱 阅读(18910) 评论(10) 推荐(5)
摘要:在一些面试题目中,也会有所谓的指定位数为固定数字的题目,比如说,这里就有一个题目:在1000以内的素数中,后面两位数字是69的个数是?我们来写代码吧,很简单的代码:public static void main(String[] args) { int counter = 0; for (int i = 69; i <= 1000; i = i + 100) { if (isPrime(i)) { counter++; System.out.println(i); } } Sy... 阅读全文
posted @ 2013-03-02 20:58 文酱 阅读(396) 评论(0) 推荐(0)
摘要:明年就要开始找工作了,所以现在正在准备中,恶补一些数据结构的基础知识和面试题目,因此,在这里不定期的整理一些题目。我发现,素数判断是一个很常见的算法,基本上,我看到的很多题目都要涉及到素数的判断,比如说,1024到687432的所有素数的和,或者720的N次方中,有哪些数是素数等等,大体涉及到素数的题目,核心问题就是要懂得如何判断素数。 那么,如何判断素数呢?素数是指只能被自身和1整除的自然数,常见而且比较容易实现的算法是试除法:将该数N用<=N的所有素数去试除,若均无法整除,则N为素数。 接下来我们就开始写代码了: boolean isPrime(int number) { ... 阅读全文
posted @ 2013-03-02 19:52 文酱 阅读(2074) 评论(2) 推荐(0)