c#基础知识复习

  平时写代码也就依照样子画葫芦,重复着相同的工作,也很无聊,现在开始整理下,一些基础知识,都已经快忘记光了,写下来记录下,平时还可以重温下。

  什么是属性?

  比如:

  public class A{

    public int Id{get;set;}

    public string Name{get;set;}

  }

  上面是一个类,那么我们要访问的属性,就是:

    A  model=new A();//调用类

    A.Id//Id就是属性

  平时我们都是这么来写代码的。分析下:官网说法:属性结合了字段和方法的多个方面。对于对象的用户,属性显示为字段,访问该属性需要完全相同的语法。对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行set 访问器的代码块。不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。

  官网的说法,还是蛮好的。一看就明白了。通俗点说就是通过get和set两个东东去设置的熟悉,调用的话,对象中调用我们叫属性,类中书写,就是set和get的方法。

  好吧,我们会通常说属性基本上就是字段的应用了。

public class Date
{
    private int month = 7;  //"backing store"

    public int Month
    {
        get
        {
            return month;
        }
        set
        {
            if ((value > 0) && (value < 13))
            {
                month = value;
            }
        }
    }
}Date model=new Date();//Month=7,month=7;model.Month=9;//Month=9,month=9;

当我们初始化model的时候,去执行Date类,那么开始从上到下执行,month是一个private私有变量,只有内部访问,也就是说外部(其他类型或者成员)不能直接调用,只有在Date里面自己调用自己,那不就是说,我们只能在Date类里面改自己的值了。Month是public,声明属性的话,默认是public,不解释了。看看里面的get和set。get就是去得到这个属性的值,这里的return month那么Month是值就是month的值7了,set就是去设置这个值看看是否符合要求,这里是 Month 值设置为 1 和 12 之间,那么结果就是Month=7,month=7;看看model.Month=9;这不就是去set嘛,好吧就是,那么判断是否是1到12之间,是的话,month=value。结果就是:Month=9那么此时的month呢?我们不是看到了month=value那么month也是9了。

 知识点:类型就是enum(枚举类型),class(类),interface(接口),struct(结构)等类型。类型成员如函数,成员变量等。

  我们现在开始看看,几个不同的例子:

  1.mode.Month=125;//Month=9,month=9;

  2.如果Date里面加上,

  public int num { get; set; }
  public string str { get; set; }

  这个不就是我们常常这样子写的,那么初始化的话,int默认是0,str为null,后面一样的原理set和get了。

  3.如果在Date里面的Month里面的set里面设置:

  public int Month { get; set; }//初始化Month为0

  4.如果去掉month:那么这样子就会出错。

public int Month
{
get
{
return month;
}
set
{
if ((value > 0) && (value < 13))
{
month = value;
}
}
}

  属性结束了,想想还是很简单不就是set和get。

  什么是继承?

  概念什么自己去百度吧,我的理解就是父类和子类,比如:

  class A{//父类

  ****一些方法属性****  

  }

  class B:A{//子类

  ****一些方法属性****

  }

  B既然继承了A的所有方法和属性,那么我就直接用吧,当然每个人都有秘密,A也不例外,A也有一些不想告诉你的,那么A就private了,B说我想看private的,A说抱歉哦不给你看哦。

  关键点:

  1.子类拥有父类非private得属性和功能;
  2.子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;
  3.子类还可以以自己的方式实现父类的功能(即方法重写)。

  当然还有protected这个东东,protected修饰符表示继承时子类可以对父类有完全访问权。

  

  class B:A{//子类

    public B():base();//子类构造方法需要调用父类同样参数类型的构造方法,用base关键字代表父类

    ****一些方法属性****

  }

  对于调用父类的成员,可以用base关键字。

  构造方法:B的构造方法就是B(),那么A的就是A()这个c#就是默认的,但是我们可以根据我们的要求去书写自己的构造方法,比如在A中写一个带参数的构造方法,如:A(string name)

  如果是继承怎么写,很简单就是:

     public B(string name):base(name){

  }

  就是这么的任性。

  如果理解有误,请指出。

  

  

时间: 2024-10-01 11:14:53

c#基础知识复习的相关文章

考试备战系列--软考--02基础知识复习

这部分主要是计算机基础知识的概念介绍,相关系列文章如下所示. 考试备战系列--软考--01基础架构概念 考试备战系列--软考--02基础知识复习 考试备战系列--软考--03综合知识复习 考试备战系列--软考--04考题收集 考试备战系列--软考--05案例收集 考试备战系列--软考--06论文准备 操作系统时计算机系统的核心系统软件,其他软件均建立在其上,其分类包括:单用户操作系统和批处理操作系统.分时操作系统和实时操作系统.网络操作系统和分布式操作系统.嵌入式操作系统.其4大特征为并发性.共

php高级进阶系列文章--第二篇(PHP基础知识复习)

php基础知识复习 本文中对于简单的知识点只会提及一下(例如什么控制结构什么的),对于较有难度的详细复习下(例如面向对象的反射等等) 再次申明,本系列文章不是从最基础的开始复习,对于零基础的可能不适用,本文的初衷是我要准备攻读源码,在攻读前将之前的知识牢固下,太过简单的就写在文中了 1,echo print echo 可以输出一个或者多个字符串 print 只可以输出一个字符串,返回值总为1 2,PHP7中的组合比较符 echo 1 <==> 1 // 0 echo 1 <==>

c基础知识复习

C的发展历程 C原本是为了开发UNIX操作系统而设计的语言:如此说,应该C比UNIX更早问世,而事实并非如此,最早的UNIX是由汇编写的: C语言本来是美国人开发的,解读C的声明,最好还是用英语来读: 解读C声明的步骤: 1.首先着眼于标识符(变量名或者函数名) 2.从距离标识符最近的地方开始,依照优先顺序解释派生类型(指针.数组和函数).优先顺序说明如下: a.用于整理声明内容的括号: b.用于表示数组的[ ],用于表示函数的( ) c.用于表示指针的* 3.解释完成派生类型,使用 “of”.

linux基础知识复习

@(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作>创建文件和目录>拷贝文件和目录>剪切文件和目录>删除文件和目录>查看文件和目录>查看文件属性>查看文件内容>过滤文件内容>编辑文件内容>统配符使用>命令别名 用户和组管理 用户基本操作>添加账户>设置密码>删除账户>修改密码组基本管理>创建组>查看组>

php高级进阶系列文章--第五篇(redis基础知识复习)

在实际工作中不仅需要使用到非常重要的关系型数据库mysql,同时也需要使用到redis,memcached,mongodb等进行数据存储,完成特定的产品需求,本节先复习redis的基础知识,高深部分后续会继续探讨 1,redis与其他的key-value形式缓存数据库的特点: 支持数据持久化,将内存中的数据保存到磁盘中,重启的时候再次加载进行使用 redis不仅有key-value格式的数据,同时也有list,set,zset,hash格式的数据结构存储数据 redis支持数据的备份,即Mast

机器学习--基础知识复习(模式识别,成本函数)

由于时间原因,今天主要复习下machine learning课程的前三节,简单记录自己的理解. 1.模式表达(Model representation) 其实就是指通过一定的范例数据学习追踪生成一个函数的表达形式.然后通过矩阵得到整个运算过程. 模型表达就是给出输入和输出之间的函数关系式,当然这个函数是有前提假设的,里面可以含有参数. 比如下图,我们有一个房子的大小size,卧室数目(bedrooms)然后得到房屋价格(price),通过这三个常数就可计算一个输入和输出的函数关系. hprice

android基础知识复习——RelativeLayout布局属性、背景、半透明设置(XML设置)

转自:http://blog.csdn.net/fansongy/article/details/6817968 复习布局与XML,写了一个空的登录界面.XML的注释我写在当行的后面了.程序运行图: 主函数没有改动,不贴了.背景图片名为:background.jpg .看看main.xml吧. [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> <LinearLayo

JAVA 基础知识复习

一.基础语法 1.标识符的规范: 1)标识符是由大小写字母,下划线,数字,$符号组成.2)开头可以是大小写字母,下划线,$符号,不可以使用数字开头.3)标识符的长度没有限制.4)标识符不能是关键字和保留字.5)标识符的命名最好能反映出其作用6)JAVA语言对大小写有严格的要求7)所有自定义标识符需要全部遵循标识符的命名规范 2.注释的3种: 1)行注释// 2)文档注释/** */ 3)多行注释/**/ 3.关键字: 关键字或保留字是对编译器有特殊意义的固定单词,不能再程序中做其他目的使用. J

C# 基础知识复习(十)---接口与接口继承

1.接口必须I开头: 2.只有申明,没有实现: 3.实现类在实现方法时,必须名字与接口一致: 4.实现类在实现继承接口时,必须把父接口的方法一并实现: 5.接口申明,默认是public的,这一点与class不同. C# 接口(Interface) 接口定义了所有类继承接口时应遵循的语法合同.接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分. 接口定义了属性.方法和事件,这些都是接口的成员.接口只包含了成员的声明.成员的定义是派生类的责任.