zoukankan      html  css  js  c++  java
  • 学习日记

    AJAX学习
    xmlhttpRequst对象
    属性 
       int   readyState ==4表示成功
      function   onreadyStatechange=
       string  RespnoseText
      Function onreadyStatechange
       XMLDocument  ResponseXML
       int States==200表示
    方法  open(string,url,True)
    send(null)
    string getResponse
    abort()
    操作:创建xmlhttp=
    <script language="javascript">
    var xmlhttp;
    function createxmlHttpReqeust()
    {
      if (window.ActiveXObject)
    {
       xmlhttp=new ActiveXObject("Mircosoft.xmlHTTP");
    }
     else(window.xmlhttpReqest)
    {
       xmlhttp=new xmlhttpRquest();
    }
     
    }
     function startReqeust()
    {
       createxmlhttpReqest();
      xmlhttp.onreadystatechange=handlestatechange;
       xmlhttp.open("Get","xmlhttprequest.xml",true);
      xmlhttp.send(null)

    }
    function handleStatechang()
    {
        if (xmlhttp.readystate==4)
      {
           if(xmlhttp.status==200)
           {
           alert("来自服务器的响应:" +xmlhttp.ResponseText);
         }    
    }
    }

    </script>


    Membership学习
     成员 提供一种存储,验证和用户管理及权限的统一路径.  对成asp.net验证方式是form   Mebership控件是login
      


    form  windows  passport none
    抽象类和密封类

    抽象类
     abstract
     
    表示类是不完整的
     
    不允许实例化
     
    可以包含抽象成员
     
    密封类
     sealed
     
    不许被继承
     
    不允许包含抽象成员
     

    抽象类和密封类不允许同时修饰


    抽象类一般作为基类,抽象类的一个重要的特点是:不能实例化,简单的说就是不能New。

    密封类是一个不能被继承的类,比如String类就是一个典型的密封类。

     1    public abstract class WarehouseBase//仓库
     2    {
     3
     4    }
     5
     6
     7    public class AutomaticWarehouse : WarehouseBase //自动化仓库
     8    {
     9
    10    }
    11
    12
    13    public sealed class VirtualWarehouse : WarehouseBase  //虚拟仓库
    14    {
    15
    16    }


    制作一个类  弹出对话框的类
    using System;
    namespace Common
    {
      public class Message
       {
       public Message()
       {
       }
       public static string Show(string StrMsg)
        {
         Reture String.Format("<script lanaguage={1}javascript{1}>alert({1}{0}{1}") ", StrMsg,"\"");
        }
       }

    }

    派生类可以调用基类的方法:
        1、通过使用base关键字;
        2、派生类在访问基类的时候有一定的限制,不能访问private的成员;internal的基类成员只能被同一个程序集中的派生类访问。


    示例:
    public class Account
    {
       public double balance;
       public bool Withdraw(double amt)
       {
           balance -=amt;
           return true;
       }
    }


    public class CheckAccount:Account
    {
       public bool Withdraw(double amt)
       {
          if (amt <= base.balance)
          {
             return base.Withdraw(amt);
           }
          else
          {
             return false;
          }
       }
    }

    C#面向对象:覆写(Override)

    覆写:子类中,为满足自己的需要来重复定义某个方法的不同实现。

    定义:通过使用关键字override来覆写
       public override bool abc(...)

    注意:只有虚方法和抽象方法才能被覆写

    要求:
       *相同的方法名称
       *相同的参数列表
       *相同的返回值类型
    Public void WriterFile()
    {
       FileStream fs=new Filestream(@"C:\test.txt",FileMode.Create,FileAccess.Write,FileShare.Write);
       byte[] buffer=new byte[100];
       for(int i=0 ;i<buffer.Length;i++)
       {
         buffer[i]=2;
       }
        fs.BeginWrite(buffer,0,buffer.Length,FileCallBack,fs);
    }
       static void FileCallBack(IAsyncResult asyncResult)
    {
        FileStream fs=asyncResult.AsyncState as FileStream;
       if (fs!=null)
       {
         fs.EndWrite(asyncResult);
         fs.close();
       }
    }


    使用用Object  值类型与引用类型转装箱操作还有引用再向值类型转换折箱操作.性能损失很大.还有安全性面
    泛型可以定义安全的数据结构,无须实际的数据类型.这样能显著提高性能并得到更高质量的代码.
    值类型编译器会在stack堆上分配4bytes空间来存储这样可以直接访问.不需要重定向到hheap
    值类型:生存周期比较短,并且很少会在多个客户之间共享,,合适的使用值类型即可以提高性能,又能缓解GC对内存的压力.

    public class ThreadTest
    {
      private int i=0;
     
    }

    etTimeOut  经过指定时间后执行一次
    SetInterval 经过批定时间时执行一次
    元素的概要。参数的概要。
    <summary>用于某个元素的概要说明,<param>用于某个方法的参数概要说明。
    Delegate 是引用类型
    实例化一个对象,覆盖以前的类。在泛型中使用泛

    ADO.Net对象 connection command dataset dataread DataAdapater
    类SqlConnection SqlCommand SqlAdapater configuation
    try catch finally层层上抛直到Catch到错误
    System.Globalization.CultureInfo MyCulture=new System.Globalization.CultureInfo("en-GB");
    system.Globalization.CultureInfo("end-US")
    页面传送方式。
    Session  容易丢失。简单
    Application   共公的。
    Cookie  有的不支持。
    QueryString  
    包括UrL  长度限制,显示在IE地址栏
    input type="hidden"   简单会被伪造
    Server.Transfer   
    数据库。安全稳定。开销比较大


    上下文是指HttpContext 类的Current属性,当我们在一个普通类中要访问内置对象时就要以使用HttpContext上下文类
    AppSettings
    system.web
    Compilation动态调式编译设置
    CustomError 自定义错误
    Authentication身份验证,此节设置应用程序的身份验证策略
    authorization 授权,些节设置应用程序的授权策略。

    view state 保存状态的一种机制 EnableViewState属性设置为False即可以禁用
    Remoting .net 是用来跨越机器,进程,应用程序域,进行方法调用的技术,对于三层结构的程序,就可以使用remoting 技术来构建。它是分布式应用的基础技术,相当于以前的dcom ,   web Service 是一构建应用程序的普通模型,并能在所支持的internet网通讯的操作系统上实施。它令是基于组件的开发和WEB的开发结合达到最佳,基于组件的对象模型。
    int[] intArr=new int[100];
    ArraryList myList=new ArraryList();
    Random rnd=new Random();
    while (myList.Count<100)
    {
      int num=rnd.Next(1,101);
      if(!myList.Contains(num))
       myList.Add(num);
    }
    for(int i=0 ;i<100;i++)
    intArr[i]=(int)myList[i]


    AppSetting
    system.web
    compilation 动态试编译
    customErrors  自定义错误
    authentication  身份验证
    authorization   授权

    两个页面页面传值方式
    QueryString("aa")
    Server.Transfer
    Session
    页面传参数的方法,及优缺点
    Session   简单会容易丢失
    input type="hidden"  简单不安全。可以伪造
    cookie  简单  可伪造
    Application  全局的呀。
    URL 显示于地址栏。。长度有限
    数据库  要读写数据库。。。性能比较差。。比较安全稳定
    try
    {}
    catch发生错误时,层层上抛,直到找到匹配的Catch为止。
    {}
    finally

    接口只包含方法或属性的声明,不包含具体实现方法的代码,


    上下文对象是指HttpContext类的Current 属性
    HttpContext 类的属性
    转发。是服务器端跳转A页到B页,B页进行行处理然后从服务器端返回
    跳转就是指客户端的跳转

    在C#中,进行虚方法的重载有些体会,现与大家分享。
    首先请大家看看下面的例子,
    using System;

    abstract public class contact
    {
         public virtual string prinf()
         {
             return ("这是虚方法");
         }
    }

    public class class1:contact
    {
          public string prinf()
          {
                 return ("这是新的方法");//但这会出现编译警告,因为已经从contact那继承了一个同名方法
          }
    }
    想要通过编译,只需将prinf的声明改为
    public override string prinf()

    public new string prinf()
    但是这两种声明方式是有区别的,
    请看下面的例子:
    using System;

    abstract public class contact
    {
         public virtual string prinf()
         {
             return ("这是虚方法");
         }
    }

    public class class1:contact
    {
          public override string prinf()
          {
                 return ("这是新的方法");  
           }
    }
    public class class2:contact
    {
          public new string prinf()
          {
                 return ("这是另一个新的方法");  
           }
    }
    public class text
    {
           public static void Main()
           {
                 contact [] contacts=new contact [2];
                 contacts[0]=new class1;
                 contacts[1]=new class2;
                 foreach(contact ct in contacts)
                 {
                       Console.WriteLine(ct.printf);
                  }
            }
    }

    最后我们看到的结果是

    这是新的方法
    这是虚方法


    而没有看见“这是另一个新的方法”,这是因为class2没有重载虚方法,而是重新定义了一个方法!
    这就是两者的区别!!!
    enum
    System.Object类的别名
    ? 泛型可以让类、结构、接口、委托和方法按它们存储和操作的数据的类型进行参数化。泛型很有用,因为它们能提供更强的编译时类型检查,减少数据类型之间的显式转换,以及装箱操作和运行时的类型检查。
    ? 在需要委托值的地方,匿名方法允许以“内联”方式编写代码块。匿名方法类似于 Lisp 编程语言中的 lambda 函数。C# 2.0 支持创建“closure”,其中的匿名方法可以访问外层局部变量和参数。
    ? 迭代器是执行递增计算并产生一系列值的方法。迭代器使类型可以简便地指定foreach 语句循环访问其元素的方式。
    ? 分部类型允许将类、结构和接口划分为多个部分,存储在不同的源文件中,以便于开发和维护。此外,分部类型允许将计算机生成的类型部分和用户编写的类型部分互相分开,以便更容易地扩充工具生成的代码。
    ? 可空类型表示可能未知的值。可空类型支持其基础类型的所有值以及一个附加的空状态。任何值类型均可作为可空类型的基础类型。可空类型支持与其基础类型相同的转换和运算符,另外还提供类似于 SQL 的空值传播。


      8、简要谈一下您对微软.NET   构架下remoting和webservice两项技术的理解以及实际中的应用。(10)  
      remoting是.net   中用来跨越machine,   process,   appdomain   进行方法调用的技术,对于三成结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM  Web   Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。Web   Service令基于组件的开发和web的结合达到最佳,基于组件的对象模型 

    10 .请解释ASP。NET中以什么方式进行数据验证
           Aps.net 中有非空验证,比较验证,取值范围验证,正则表达式验证及客户自定义验证五大控件,另还有一个集中验证信息处理控件
    11.  WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回。
    在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端
    只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件
    12.  WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
    可以调用
    例如:<asp:TextBox id="TextBox1" onclick="clientfunction();" runat="server">
    </asp:TextBox>
    <INPUT id="Button2" value="Button" name="Button2"
    runat="server" onclick="clientfunction();">
    14.  请解释ASP。NET中的web页面与其隐藏类之间的关系?
    一个ASP.NET页面一般都对应一个隐藏类,一般都在ASP.NET页面的声明中指定了隐藏类例如一个页面Tst1.aspx的页面声明如下
    <%@ Page language="c#" Codebehind="Tst1.aspx.cs" AutoEventWireup="false" Inherits="T1.Tst1" %>
    Codebehind="Tst1.aspx.cs" 表明经编译此页面时使用哪一个代码文件
    Inherits="T1.Tst1" 表用运行时使用哪一个隐藏类
    15.  什么是viewstate,能否禁用?是否所用控件都可以禁用?
    Viewstate是保存状态的一种机制,EnableViewState属性设置为false即可禁用
    16.  当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决
    很有可能是在Page_Load中数据处理时没有进行Page的IsPostBack属性判断
    17.  请解释什么是上下文对象,在什么情况下要使用上下文对象
    上下文对象是指HttpContext类的Current 属性,当我们在一个普通类中要访问内置对象(Response,Request,Session,Server,Appliction等)时就要以使用此对象
    18.  请解释转发与跳转的区别?
    转发就是服务端的跳转A页面提交数据到B页面,B页面进行处理然后从服务端跳转到其它页面
    跳转就是指客户端的跳转
    1.请简述一下用Socket进行同步通讯编程的详细步骤
    1、在应用程序和远程设备中使用协议和网络地址初始化套接字
    2、在应用程序中通过指定端口和地址建立监听
    3、远程设备发出连接请求
    4、应用程序接受连接产生通信scoket
    5、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)
    6、通讯结束,关闭应用程序和远程设备的Socket回收资源


    13.  请解释web.config文件中的重要节点
    appSettings包含自定义应用程序设置。
    system.web 系统配置
    compilation动态调试编译设置
    customErrors自定义错误信息设置
    authentication身份验证,此节设置应用程序的身份验证策略。
    authorization授权, 此节设置应用程序的授权策略.

    5 .列举ASP.NET 页面之间传递值的几种方式。
    1.     使用QueryString, 如....?id=1; response. Redirect()....
    2.使用Session变量
    3.使用Server.Transfer

    2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
    session(viewstate) 简单,但易丢失
    application 全局
    cookie 简单,但可能不支持,可能被伪造
    input type="hidden" 简单,可能被伪造
    url参数简单,显示于地址栏,长度有限
    数据库稳定,安全,但性能相对弱
    2.override与重载的区别
    Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
    3、.net的错误处理机制是什么
    .net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
    4、C#中接口和类的异同
    接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
    4、DataReader和DataSet的异同
    DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
    DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
    1.     在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
    Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New 实例化一个对像,或修饰一个方法,表此方法完全重写此方法

    4.谈谈类和结构的区别?
    最大区别一个是引用类型,一个是值类型 默认成员访问为public是另外一个区别
    1. 在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
    this(C#) Me(vb.net).
    2在.net(C# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息。
    在form中重载DefWndProc函数来处理消息:
    protected override void DefWndProc ( ref System.WinForms.Message m )
    {
    switch(m.msg)
    {
    case WM_Lbutton :
     ///string与MFC中的CString的Format函数的使用方法有所不同
     string message = string.Format("收到消息!参数为:{0},{1}",m.wParam,m.lParam);
     MessageBox.Show(message);///显示一个消息框
     break;
    case USER:
    处理的代码
    default:
     base.DefWndProc(ref m);///调用基类函数处理非自定义消息。
     break;
    }
    }
    3. 在.net(C# or vb.net)如何启动另一个程序。process
    4. 在.net(C# or vb.net)中如何取消一个窗体的关闭
    private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    e.Cancel=true;
    }
    5. 在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
    答案:一个是退出整个应用程序,一个是关闭其中一个form


    6. 在C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50和$122,235,401.22而在英国则为£10 321.50和£122 235 401.22
    答案:
    System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
    //System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");为英国货币类型
    decimal y = 9999999999999999999999999999m;
    string str = String.Format(MyCulture,"My amount = {0:c}",y);
    7. 某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
    (1) 密码单词的最小长度是两个字母,可以相同,也可以不同
    (2) K不可能是单词的第一个字母
    (3) 如果L出现,则出现次数不止一次
    (4) M不能使最后一个也不能是倒数第二个字母
    (5) K出现,则N就一定出现
    (6) O如果是最后一个字母,则L一定出现
    问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
    A) K B)L C) M D) N
    答案:B
    问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
    A)1个 B)3个 C)6个 D)9个
    答案:A
    问题三:下列哪一个是单词密码?
    A) KLLN B) LOML C) MLLO D)NMKO
    答案:C
    8. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
    答案:62移动成2的6次方

      8.C#中的接口和类有什么异同。
    答:接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
    而类是负责功能的具体实现!
    在类中也有抽象类的定义,抽象类与接口的区别在于:
    抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
    但接口是一个行为的规范,里面的所有东西都是抽象的!
    一个类只可以继承一个基类也就是父类,但可以实现多个接口
    9.。net中读写数据库需要用到哪些类?他们的作用
    答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到.


     17.什么是SOAP,有哪些应用。
    答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:http://playist.blogchina.com/2521621.html
    20.常用的调用webservice方法有哪些?
    答:
    可以从浏览器、ASP页或其他WEB服务调用可以使用HTTP-GET   HTTP-POST访问WEB服务也可以从ASP页或其他WEB服务向其他WEB服务发出SOAP请求HTTP-GET   HTTP-POST  SOAP  使用WEB服务代理
    6.  私有程序集与共享程序集有什么区别?
    一个私有程序集通常为单个应用程序所使用,并且存储于这个应用程序所在的目录之中,或此目录下面的一个子目录中。共享程序集通常存储在全局程序集缓存(Global Assembly Cache)之中,这是一个由.NET运行时所维护的程序集仓库。共享程序集通常是对许多应用程序都有用的代码库,比如.NET Framework类。
    7.  请解释进程与线程的区别?进程与程序的区别?
    一般,一个应用程序对应于一个或多个进程,可以把进程看作是该应用程序在*作系统中的标识;而一个进程通常由多个线程组成,而线程是*作系统为该应用程序分配处理时间的最小单元。
    8.  CLR与IL分别是什么含义?
    CLR:公共语言运行时,类似于Java中的JVM,Java虚拟机;在.Net环境下,各种编程语言使用一种共同的基础资源环境,这就是CLR,CLR将直接与*作系统进行通信,而编程语言如C#.NET将尽量避免直接与*作系统直接通信,加强了程序代码的执行安全性,可以这样看:CLR就是具体的编程语言如:C#.NET与*作系统之间的翻译,同时它为具体的编程语言提供了许多资源:
    IL,中间语言,也称MSIL,微软中间语言,或CIL,通用中间语言;所有.NET源代码(不管用哪种语言编写)在进行编译时都被编译成IL。在应用程序运行时被即时(Just-In-Time,JIT)编译器处理成为机器码,被解释及执行。
    9.什么叫做SQL注入,如何防止?请举例说明。
    利用sql关键字对网站进行攻击。过滤关键字'等
    所谓SQL注入(SQL Injection),就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取想得到的资料。
    http://localhost/lawjia/show.asp?ID=444 and user>0,这时,服务器运行Select * from 表名 where 字段=444 and user>0这样的查询,当然,这个语句是运行不下去的,肯定出错,错误信息如下:
      ·错误类型:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
    [Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'sonybb' 转换为数据类型为 int 的列时发生语法错误。
    a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
    int[] intArr=new int[100];
    ArrayList myList=new ArrayList();
    Random rnd=new Random();
    while(myList.Count<100)
    {
    int num=rnd.Next(1,101);
    if(!myList.Contains(num))
    myList.Add(num);
    }
    for(int i=0;i<100;i++)
    intArr[i]=(int)myList[i];
           20.请叙述类与结构的区别。
      1)、结构是值类型;
      2)、结构不支持继承;
      3)、结构不能定义默认的构造函数;
      4)、结构不能定义析构函数;
      5)、结构不能使用初始值设置域值。


    configuation
    sqlconnection
    sqlcommand

    clss and struct
    引用类型,值类型

    序列化是将对象转换为容易传输的格式的过程。

    ado.net
    connection 连接对象
    Command 命令对象,执行SQL命令与存储过程
    DataReader  向前只读的数据流。
    DataAdapadter 功能强大的适配器,支持增删改查的功能
    DataSet  是数据集对象,相当与内存中的数据库,还可存放表这间的关系
    .net身份验证
    form  Windows  passport护照  none
    反射:在运行中得到程序集的信息(包类型,及成员,反射提供了封装程序集、模块和类型的对象。)反射:在运行时找到有关对象、对象的类,方法和变量等信息。 System.Reflection
    ORM  O/R mapping 对象关系映射。
    NEW的方法: new class   Public New XX()  New 约束指定的泛型

    控件是.ascx扩展名。可以拖到不同的页面中调用。节省大量的手写代码

    virtual 虚函数,

    QueryString
    Session
    Server.Transfer
    private   私有的成员类公为类自己内部使用
    Protected   收保护的成员呀 为自己类和继承类使用
    Public  共开类,为使用类共用
    internal   在同一命名空间中使用
    OOP 继承,封装,多态性

    重写  overrid  派生类开基类同名与参数相同。盖掉前面的方法   继承的类方法与函数在基类相同这里被重写,名称相同
    重载   函数或方法名相同,后面参数不同系统自动找到对应的值
    把函数当着一个参数..委托

    时间段   是多个线程一起运行....   一个进程可以包括多个线程
    时间点   cup只有一个线程占用

    他是一个强类型与长期保存  与application 与session不一样呀.长期保存了
    支持匿名用户,他配制存在Provider
    System.Text.Encoding.Default.GetBytes(变量) 
       字码转换 转为比特码 


     




    属性:attribute 扩展自身的方式利用属性来实现的 作用:为了将额外的信息与C#程序中的代码关联起来,这样便可以在运行阶段得到这个信息。
    CLS common Language Specification CLS 通用语言规范
    clr 通用语言运行库
    索引器类似。属性。也是用Get Set但不同的是关健字是This
    接口作用:接口作为一种给结构提供继承特性的途径。可在一类中实现多个接口。抽象无法实现此功能。
    接口可以类通过基他方法给类实现的特征

    类与接口比较
    接口不提供实现的代码,这些代码是由实现接口提供的。接口提供关于将发生的情况的规范或指南,但不提供细节。
    接口,所有成员都被视有为公有的。如果试图为接口的成员声明一个不同的作用域限定符,将会出错。
    接口:只包含方法,属性。事情索引器。而不包含数据成员、构造函数和析构函数,也只能包含静态成员
    接口可以多继承。类是单继承

    接口:扩大对继承和多态的用途。
         用途是定义要声名的类中将包括含什么,但不定义实际的功能。接口类似与抽象方法
    虚方法:以便实现多态   pai生类中使用关键字   New    Override
    抽象类:将基类声明为抽象类,关键字 abstract  就可以强制pai生类覆盖基类的方法
    因为类的数量大要以一定的方式对其进行曲组织,可以将类集中在一起,形成名称空间,名称空间是一组被命名的类。
    properties 类中创建面向对象的字段  通过Get Set来获取与设置变量的值
      
    静态方法 static 静态方法不对特定实例进行操作,并且只能访问静态成员。 不能使用this显式的访问成员

    实例方法   可以对特定实例进行操作能够访问静态成员与实例成员工 

    虚方法    virtual   虚方法可以在派生类中重写
    重写方法  override
    抽象方法   abstract抽象 没有实现的虚方法。抽象方法使用 abstract 修饰符进行声明,并且只有在同样被声明为 abstract 的类中才允许出现。抽象方法必须在每个非抽象派生类中重写。

    索引器。。一个类中可以申明多个可以被重载 


    重写有  http模块执行重写   http处理程序中执行url重写  构建一个URL重写引擎
        
        
           

    数据类型分隔为值类型和引用类型。值类型要么是堆栈分配的,要么是在结构中以内联方式分配的。引用类型是堆分配的。引用类型和值类型都是从最终的基类 Object 派生出来的。当值类型需要充当对象时,就在堆上分配一个包装(该包装能使值类型看上去像引用对象一样),并且将该值类型的值复制给它。该包装被加上标记,以便系统知道它包含一个值类型。这个进程称为装箱,其反向进程称为取消装箱。装箱和取消装箱能够使任何类型像对象一样进行处理。

  • 相关阅读:
    CentOS 7拨号上网(ADSL & PPPoE)
    linux使用nmcli重新生成网卡配置文件
    Linux 内存缓存占用过大,Centos7设置定时清除buff/cache的脚本
    部署redis6.0 常见问题
    ssh 升级导致的hadoop 主备切换失败
    配置zookeeper的 ACL权限
    sqoop 创建跟mysql相同表结构的hive表报错
    vim中显示不可见字符
    supervisor 使用
    使用hive streaming 统计Wordcount
  • 原文地址:https://www.cnblogs.com/winner/p/638395.html
Copyright © 2011-2022 走看看