亮剑.NET--我不清楚的知识汇总

 

1、有时候同一功能需要在新的派生类中重新实现逻辑,而不想再使用基类的方法,可使用new关键字来实现隐藏基类成员。

 如: public new void sayhello(){}

 

2、使用sealed关键字修饰的类被称为密封类,此类不能被继承。此关键字也可以修饰方法,则此方法不能被重载。

 

3、abstract 与 virtual的区别:abstract 用于修饰类和方法,表示抽象类和抽象方法。适用场景为,某类专门设计供别人继承,本身只提供类与方法的声明即可。如果一个类中包含抽象方法则此类必须为抽象类。virtual的适用场景为,某类本身需要包含一些方法的实现,但同时又希望派生类实现部份方法,此时就可以使用virtual关键字修饰方法,称为虚方法。

 

4、多重继承中,如果一个类实现了两个及其以上的接口,且接口中存在同名情况时,实现方法的名称前不能加PUBLIC关键字,同时,每个方法名前必须加相应的接口名。如:void IFace1.Say(){} 对于不同名称的方法则必须加PUBLIC关键字。同时,在创建实例时,如果调用某个接口的实现,必须将实例强制转换为相应的接口类型。

 

5、访问修饰符: internal 表示在同一应用程序集内的类可以访问和继承。 Protected internal 表示在同一应用程序集内的自己及其派生类可以访问与继承。

 

6、using 除了表示引用指令及定义范围外,还可以声明别名如:using aclass  = namespance1.Myclass;则以后的aclass都代表namespance1.Myclass

 

7、==与equals的区别:两都比较方法不一样。==比较是栈中的内容是否相等,页equals比较的是堆中的内容是否相等。

 

8、readonly 与  const的区别:两者都是用来标识常量的。(1)但初始化赋值方式不同。const在声明的时候就必须赋值,因此,但是固定。而Readonly则是在初始化的过程中赋值,因此不同的初始化可能值就不一样。(2)另外readonly是运行是常数,即在运行时才确定其值。const是编绎时常数,在编绎时就必须确定值。(3)const默认是静态的,readonly不是(4)const 修饰的内容有限制而readonly没有

 

9、params\out \ref的区别: params做为参数时,之后不允许存在其它的参数,作用,可以用来实现一方法拥有可变参数。out则可用在方法有多个返回值时,在方法内必须为其赋值。ref却必须在进入方法之前为其赋值。

 

10、class与struct的区别:二者极为相似,但也有区别:(1)class是引用类型,而sturct是值类型。(2)class可以被继承,但struct不可以。(3)内部构造上有区别;

 

11、Session 超时和莫名丢失的处理

原因:

a.改动Global.asax\web.config\bin目录,导致Web Application重启

b.有些杀毒软件会去扫描Web.config文件,也会导致session失效

c.服务器内存不足

d.程序中有让Session丢失的代码。

e.程序中有框架页和跨域的情况。

解决:

a.修改Web.config中的timeout有效时间

b.建议让网站使用独立的应用程序池

c.IIS设置Session超时时间

d.在应用程序池中打开网站对应的应用程序池属性,将Web数量改为1

e.在主页面里加入一个框架页iframe,设置高和宽为0,在<head>中加入<meta http-equiv="refresh" content="1080">每18分钟刷新一次页面。

 

12、设置默认焦点:在form标记中设置 defaultfocus="textbox1" 和 defaultbutton="btnok"

 

13、通过回车文本框焦点自动跳转:在form标记中设置 οnkeydοwn='if(event.keyCode==13 && event.sreElement.type=="text")event.keyCode=9'

 

14、按快捷键提交(ctr+enter): d在body 中加入οnkeydοwn="save();" 然后定义save方法如下

Function save()

{

If(window.event.keyCode==13 && window.envent.ctrKey)

{

Document.haha.submit();

}

}

 

15、操作等待效果:

<div id="runing" runat="server" style="z-index:12000; left:0px; width:100%; cursor:wait; position:absolute; top:0px;height:100%;">

    <table width="100%" height="100%">

        <tr align="center" valign="middle">

            <td>

                <table width="200" height="120" style=" background-color:Gray; filter:Alpha(Opacity=70); color:White;">

                    <tr align="center" valign="middle">

                        <td>

                            <div id="clocktimes">                               

                            </div>

                            <br />

                            正在提交,请稍候……

                        </td>

                    </tr>

                </table>

            </td>

        </tr>

    </table>

</div>

 

<asp:Button ID="btnOK" runat="server" Text="提交" OnClick="btnOK_Click" />

 

在JS中加入脚本:

 

<script language="javascript">

    var times = 0;

    function tick() {

        times++;

        var min = Math.floor(times / 60);

        var secend = times - min * 60;

        document.getElementById("clocktimes").innerHtml = min + "分" + secend + "秒";

 

    }

</script>

 

在后台注入脚本即可

 btnOK.Attributes.Add("onclick","javascript:document.getElementById('runing').style,visibility='visible';window.setInterval('tick()',1000);");

            

16、用

<div class="listTable" style="overflow:scroll; ">把GRIDVIEW包起来可以实现内容过长时出现滚动条但在IE6下无效

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值