c#笔记

来源:互联网 发布:网络推广工作基本做法 编辑:程序博客网 时间:2024/06/05 00:45

1、子类实现父类抽象类的抽象方法时,必须用override修改;抽象类可以/需要用修饰符修饰的;

2、父类的可访问性不能低于子类的;

3、类不在其他类或结构中时,修饰符要么是internal,要么是public;

4、构造器就是构造函数

5、0x表示后面的数是用16进制表示

6、DataTime.Now.Ticks 的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来所经历的以 100 纳秒为间隔的间隔数,可用于较精确的计时。

1秒=1000豪秒 1毫秒=1000微秒 1微秒=1000毫微秒(纳秒)

7、同步调用ajax举例(async:异步,在此处置为false表示同步),

$.ajax({ type: "POST", 

             url: '/order/ConfirmVendorAllocation', 

             async: false,
             data: { orderno: orderno, ignore: 'yes' },
             success: function (msg) {
             }
    });

  异步调用ajax举例,$.post('/shipping/ConfirmShipping', { id: id, shippingmethod: shippingmethod, type: type, remark: remark },
                function (data) {

}

8、多个radio公用一个name时只能有一个被选中,后台可以用 Request[name]来获取值

9、<input type="checkbox" checked="checked" id="rem"/>

<labelfor="rem">记住密码</label>

这样点击记住密码文字也能选中复选框

10、asp.net mvc中通过js弹窗向页面反馈结果,前提是必须用ajax提交才行,否则会在新页面上返回源字符串

 public ActionResult DeleteArticleInfo(string id)
        {
            string _js = "alert('删除失败')";
            return JavaScript(_js);
        }

11、js关闭当前窗口:window.opener=null;window.open('','_self');window.close();打印窗口:window.print();

12、document.body.scrollHeight页面的实际高度,document.body.scrollWidth页面的实际宽度

13、zIndex 属性设置元素的堆叠顺序。该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。js语法 Object.style.zIndex=auto|number,css语法 z-index:1;

14、html弹框原理:先给body加一个div标签,修改样式(如不透明度等),作为蒙版,放在最上层;再加一个div,声明样式(高度、宽度、位置等),把一个iframe标签放在这个div的体内,放在最上层(zindex);设置好iframe的url等属性即可。取消时从body移除这两个元素即可。

15、return RedirectToAction("UserDetail")和return View("UserDetail") 或者return UserDetail()真真儿的不一样的亲

16、排列和组合就相差一个顺序的问题



17、算法解决问题时可以用枚举找出规律;概率问题可以算与之相反的概率;数学的知识忘的太多了

18、vs中不显示解决方案名称处理:工具->选项->项目和解决方案,把"总是显示解决方案"打 √ 就ok 了

19、HashTable、Dictionary、List的比较:

前两者都是散列表,通过键值对来储存和读取数据,但这两者的键的冲突算法略有不同;

插入数据是List明显比其他两者快,因为list是数组存储;速度顺序是 List  远〉Dictionary  略〉HashTable;

读取顺序是HashTable明显较快,因为可以直接根据键获取到在内存中的地址,从而直接读取数据,但List却需要遍历整个数组查询;读取速度顺序是 HashTable 略 〉Dictionary 远 〉List

20、HashTable 和 HashMap

前者是同步的,所以在多线程的时候不需要额外处理;后者默认异步,所以多线程的时候需要处理;

C#中只有HashTable,没有HashMap,后者是Java 1.2中对Map接口的实现;

但现在HashTable在c#中应该用的比较少了,一般用dictionary代替

在3.5之前,想用哈希表来提高集合的查询效率,只有Hashtable和Dictionary<TKey,TValue>两种选择,而这两种都是键-值方式的存储。但有些时候,我们只需要其中一个值,例如一个Email集合,如果用泛型哈希表来存储,往往要在Key和Value各保存一次,不可避免的要造成内存浪费。而HashSet<T>只保存一个值,更加适合处理这种情况。

此外,HashSet<T>的Add方法返回bool值,在添加数据时,如果发现集合中已经存在,则忽略这次操作,并返回false值。而Hashtable和Dictionary<TKey,TValue>碰到重复添加的情况会直接抛出错误。

从使用上来看,HashSet<T>和线性集合List<T>更相似一些,但前者的查询效率有着极大的优势。假如,用户注册时输入邮箱要检查唯一性,而当前已注册的邮箱数量达到10万条,如果使用List<T>进行查询,需要遍历一次列表,时间复杂度为O(n),而使用HashSet<T>则不需要遍历,通过哈希算法直接得到列表中是否已存在,时间复杂度为O(1),这是哈希表的查询优势,在上一篇中已提到。

21、 string s = "sfsfdsf";
            s.Split(new string[] { "%%" }, StringSplitOptions.RemoveEmptyEntries);

22、计算机是0和1的世界,之所以能呈现这么多的内容是因为对数据进行了编码

23、计算机fat32和ntfs格式的硬盘,为文件分配空间的最小单位是4kb,也就是说即便文件只有一个字节的大小,也会占用4kb的硬盘空间。


(未完待续。。。)

0 0
原创粉丝点击