1、c#中的访问修饰符

public :公开的公共的

private:私有的,只能在当前类的内部访问

protected:受保护的,只能在当前类的内部以及该类的子类中访问。

internal:只能在当前程序集中访问。在同一个项目中,internal和public的权限是一样。

protected internal:protected+internal

1)、能够修饰类的访问修饰符只有两个:public、internal。

2)、可访问性不一致。子类的访问权限不能高于父类的访问权限,会暴漏父类的成员。

2、设计模式

设计这个项目的一种方式。

3、简单工厂设计模式

 namespace 简单工厂设计模式
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入你喜欢的笔记本品牌");
string brand = Console.ReadLine();
NoteBook nb = GetNoteBook(brand);
nb.SayHello();
Console.ReadKey();
}
/// <summary>
/// 简单工程的核心,根据用户的输入创建对象赋值给父类
/// </summary>
/// <param name="brand"></param>
/// <returns></returns>
public static NoteBook GetNoteBook(string brand)
{
NoteBook nb = null;
switch (brand)
{
case "IBM": nb = new IBM();
break;
case "DELL": nb = new DELL();
break;
case "Acer": nb = new Acer();
break;
case "Lenovo": nb = new Lenovo();
break;
}
return nb;
}
}
public abstract class NoteBook
{
public abstract void SayHello();
}
public class IBM : NoteBook
{
public override void SayHello()
{
Console.WriteLine("我是IBM笔记本");
}
}
public class Acer : NoteBook
{
public override void SayHello()
{
Console.WriteLine("我是鸿基笔记本");
}
}
public class Lenovo : NoteBook
{
public override void SayHello()
{
Console.WriteLine("我是联想笔记本");
}
}
public class DELL : NoteBook
{
public override void SayHello()
{
Console.WriteLine("我是戴尔笔记本");
}
}
}

4、值类型在复制的时候,传递的是这个值得本身。

引用类型在复制的时候,传递的是对这个对象的引用。

1)如图,当对象P1赋值给对象P2的时候,传递的是P1的引用(100001),所以P1,P2指向的是堆中的同一片空间,P1发生改变,P2也发生改变。


2)

3)字符串比较特殊,虽然是引用类型,但是字符串的不可变性使得其不会像上面一样输出。

 namespace 值类型和引用类型
{
class Program
{
static void Main(string[] args)
{
//值类型:int double char decimal bool enum struct
//引用类型:string 数组 自定义类 集合 object 接口
string s1 = "张三";
string s2 = s1;
s2 = "李四";
Console.WriteLine(s1);
Console.WriteLine(s2);
Console.ReadKey();
}
}
}

5、序列化:就是将对象转换为二进制

 namespace 序列化与反序列化
{
class Program
{
static void Main(string[] args)
{
//要将P这个对象,传输给对方电脑
Person p = new Person();
p.Name = "秀秀";
p.Age = ;
p.Gender = '女';
using (FileStream fsWrite = new FileStream(@"C:\Users\Administrator\Desktop\2.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
//开始序列化对象
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsWrite,p);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
}
}
[Serializable]//指示这个类可以序列化
public class Person
{
private string _name; public string Name
{
get { return _name; }
set { _name = value; }
}
private int _age; public int Age
{
get { return _age; }
set { _age = value; }
}
private char _gender; public char Gender
{
get { return _gender; }
set { _gender = value; }
} }
}

反序列化:就是将二进制转换为对象

 namespace 序列化与反序列化
{
class Program
{
static void Main(string[] args)
{
//接收对方发送过来的二进制,反序列化称对象
Person p;
using (FileStream fsRead = new FileStream(@"C:\Users\Administrator\Desktop\2.txt", FileMode.OpenOrCreate, FileAccess.Read))
{
BinaryFormatter bf = new BinaryFormatter();
p = (Person)bf.Deserialize(fsRead); }
Console.WriteLine(p.Name);
Console.WriteLine(p.Age);
Console.WriteLine(p.Gender);
Console.ReadKey();
}
}
[Serializable]//指示这个类可以序列化
public class Person
{
private string _name; public string Name
{
get { return _name; }
set { _name = value; }
}
private int _age; public int Age
{
get { return _age; }
set { _age = value; }
}
private char _gender; public char Gender
{
get { return _gender; }
set { _gender = value; }
} }
}

作用:传输数据。

序列化:1)、将这个类标记为可以被序列化的。[Serializable]

6、partial部分类

 //部分类 成员之间可以互相使用
public partial class Person
{
private string _name;
public void Test()
{ }
}
public partial class Person
{
public void Test(string name)
{
_name = "";
}
}

7、sealed密封类

不能够被其他类继承,但是可以继承于其他类。

8.重写ToString()方法

 class Program
{
static void Main(string[] args)
{
Person p = new Person();
Console.WriteLine(p.ToString());
Console.ReadKey();
}
} public class Person
{
//重写父类(object),虚方法
public override string ToString()
{
return "Hello World";
}
}

C#第十天的更多相关文章

  1. 前端开发中SEO的十二条总结

    一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片 ...

  2. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  3. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

  4. CSS十问——好奇心+刨根问底=CSSer

    最近有时间,想把酝酿的几篇博客都写出来,今天前端小学生带着10个问题,跟大家分享一下学习CSS的一些体会,我觉得想学好CSS,必须保持一颗好奇心和刨根问底的劲头,而不是复制粘贴,得过且过.本人能力有限 ...

  5. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  6. 谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  7. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  8. CRL快速开发框架系列教程十(导出对象结构)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  9. 【NLP】十分钟快览自然语言处理学习总结

    十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文 ...

  10. 十分钟玩转 jQuery、实例大全

    一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQuery对象 jQuery产 ...

随机推荐

  1. javascript对象深拷贝,浅拷贝 ,支持数组

    javascript对象深拷贝,浅拷贝 ,支持数组 经常看到讨论c#深拷贝,浅拷贝的博客,最近js写的比较多, 所以也来玩玩js的对象拷贝. 下面是维基百科对深浅拷贝的解释: 浅拷贝 One meth ...

  2. mysql数据类型简介

    MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种. 这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型.下面做个对比: MyISAM表 ...

  3. 直插式精巧I/O模块:WIZ812MJ数据手册V1.1

    1. 简介 WIZ812MJ是一款内嵌了W5100(硬件TCP/IP芯片,内置PHY).带其他胶合逻辑的MAG-JACK(带变压器的RJ45)网络模块.它可以当作一个组件使用,而且不需要为W5100和 ...

  4. Android 检测是否连接蓝牙耳机

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  5. Dockerfile与Docker构建流程解读

    摘要 本文主要讨论了对docker build的源码流程进行了梳理和解读,并分享了在制作Dockerfile过程中的一些实践经验,包括如何调试.优化和build中的一些要点.另外,还针对现有Docke ...

  6. JavaScript星级评分

    事件onmouseover <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  7. [HMLY]8.Cocoa

    cocoa是苹果公司为mac os x所创建的原声面向对象API,是mac os x上五大API之一,其他四个是carbon,posiX,x11,java. 苹果的面向对象开发框架,用来生成 Mac ...

  8. php bin/console doctrine:migrations:migrate

    $ php bin/console doctrine:migrations:migrate                    XinXiBundleMigrationsWARNING! You a ...

  9. ShopNC_WAP

    记录 ShopNC_WAP 端点点滴滴 插件记录 1.  http://www.jiawin.com/swipe-mobile-touch-slider   swiper 插件 2. https:// ...

  10. 回家(洛谷 P1592)

    模板题.. 传送门:codevs 1079 思路 :以 Z 为起点 直接跑一边SPFA , 看哪一头母牛距离Z点最近 , 最后找出Z 到 A~Y 的最短路 (因为仅有A~Z有奶牛) #include ...