zoukankan      html  css  js  c++  java
  • C#高级编程笔记(三)

    ch 3 对象与类型

    类和结构

    相同:1.都是创建对象的模板;2.每个对象都包含数据,并提供了处理和访问数据的方法;

    区别:在内存中的存储方式、访问方式:类存储在堆栈(heap)上的引用类型;结构存储在栈(stack)上的值类型,且结构不支持继承;

    包含:数据成员(字段、常量、事件、函数成员(方法、属性、构造函数、终结器(finalizer)、运算符、索引器)

    方法:

    给方法传递参数:引用传递、值传递;(参数传递给方法前任何变量都必须初始化)

    引用传递:被调用方法得到的就是这个变量,即内存中变量的指针->在方法内部对变量进行任何改变在方法退出后仍旧有效;

    值传递:被调用的方法得到的是变量的一个相同的副本->方法退出后对变量的修改会丢失;

    说明:在C#中,一般引用类型通过引用传递,值类型通过值传递;引用类型变量只包含对象的引用,作为参数传递时,传递的正是该对象的引用,在方法内对对象的修改会保留下来;值类型变量包含实际数据,传递给方法的是数据本身的副本。(字符串行为特殊,不同于一般的引用类型)

    比较:对于复杂类型引用传递效率更高(值传递时,必须的复制大量数据)。

    ref:将值类型通过引用传递给方法;

    out:简化输入参数的初始化,C#通过Out关键字对变量进行初始化;

    命名参数:(一般参数按顺序传递给方法)允许按任意顺序传递,eg:声明:void Func(string str_pa,int int_pa){//....} 调用 :Func(int_Pa1:124,str_Pa2:"MyStringParameter");

    可选参数:必须为参数提供默认值,且可选参数必须为方法最后定义的参数

    方法重载:方法名相同,但参数个数或者类型不同,与返回值无关,与ref,out无关;

    属性(Property)

  • 相关阅读:
    Qbxt 模拟题 day2(am) T2 jian
    Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
    洛谷比赛 U5442 买(最长链)
    洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)
    Codevs 4373 窗口(线段树 单调队列 st表)
    P1453 城市环路
    P1841 [JSOI2007]重要的城市
    P1410 子序列
    H
    GSS4 D
  • 原文地址:https://www.cnblogs.com/forevertime/p/5211376.html
Copyright © 2011-2022 走看看