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)

  • 相关阅读:
    正则表达式
    Requests库基本使用(转载)
    prometheus + grafana + pushgateway 搭建监控可视化系统
    Docker的系统资源限制(转载)
    DAY8 文件操作
    DAY7 集合,深浅copy
    DAY6 Python之代码块,小数据池的详解
    DAY5 Python基础类型之字典
    DAY4 Python数据类型之列表
    DAY3 python基础之数据类型总览
  • 原文地址:https://www.cnblogs.com/forevertime/p/5211376.html
Copyright © 2011-2022 走看看