C#进阶封装

面向对象:

圆可以画在黑板上。
黑板上可以被画个园 ==》一般我们把被动(黑板)的作为对象。
在代码中描述一个对象,通过描述这个对象的属性(特征)和方法(行为)。
万物皆对象(看得见摸得着的,能描述的才行);

类:

把具有相同属性跟方法的对象提取出来封装在一起就是类。
类就是一个模子,确定对象将会拥有的(属性)特征和(方法)行为。
类是盖大楼的图纸,对象 是根据图纸盖出来的大楼。

语法:

public class 类名
{
	(Field)字段;
	(Method)属性;
	(Property)方法;
}
对象的实例化:创建对象的过程
类是不占内存了,而对象占内存
path:C-_learn\object\One ==>class man
属性:

public 公共的,外界可访问的。
private 私有的,只有类中才可访问。(默认类型)

private int -age;	//私有字段(字段)
public int Age		//通过Age共有属性可以访问(属性)
{
	get{return _age}	//取值时执行get
	set{_age = value}	//赋值时执行set
}

path:C-_learn\object\One ==>class SuperMan

static特性:

  1. 静态成员需要类名去调用,非静态成员用对象去调用.
  2. 静态方法中只能访问静态成员,不能访问非静态成员
  3. 非静态函数中既能使用静态成员,也能使用非静态成员
  4. 静态类是不用实例化的,直接用类名调用来用
  5. 静态类中不允许出现非静态(实例)成员
  6. 静态类在整个项目中共享,程序结束才释放静态资源。

构造函数:

作用:帮助我们创建对象时初始化对象。

  1. 构造函数只是一个特殊的方法。没有返回值,还不能写void
  2. 构造函数名跟类名必须相同。
  3. 构造函数可以有重载
  4. 类中没有写构造函数时会自动提供一个默认的无参构造函数。

语法:

public class ClassName
{
	public ClassName(string name)
	{
		/* 实例化对象后最先执行构造函数。*/
		this.Name = name;
	}
	string _name;
	public string Name
	{
		get{return _name;}
		set{_name = value;}
	}
}
/******************************************************/
调用:
ClassName Object = new ClassName("Superman");

path:C-_learn\object\Two ==>class ClassName

析构函数:

只有在程序结束时调用,并非类使用完调用。
语法:

public class ClassName
{
 	~ClassName()
 	{
 		//需要释放资源的代码。
 	}
 	string _name;
 	public string Name
 	{
  		get{return _name;}
 	 	set{_name = value;}
 	}
}

path:C-_learn\object\Two ==>class Student
/***********

命名空间:

命名空间时类的一个集合

快速导入命名空间:
鼠标放到使用的类上,会自己弹出来
alt + shift + F10

在一个项目中引用另一个项目的类:
1.添加引用
2.再在有调用的地方(文件)添加命名空间。

值类型和引用类型

数值类型直接存储在栈上
引用类型存储在堆上==》string 对象 数组(malloc, new的都为引用类型)

sting类型
sting开辟的空间后又重新指向遗留的内存垃圾会又GC(垃圾回收器)自动回收
一切类型都可以调用 .tostring 转换为字符串类型。

详解:

  1. string str1 = “123”;
  2. string str2 = “123”
  3. 当两个字符串值相同时,str1 跟 str2 都指向同一个堆区,如果需要重新赋值会在堆上重新开辟一个空间写入新值,并指向。
class Program
    {
        static void Main(string[] args)
        {
            string name = "wK";   //在堆上开辟了一个空间,用name指向
            string she = name; //在堆上开辟了一个空间,用she指向,把name指向的地址空间的内容拷贝到了she指向的内存空间
            name = "yL";   //在堆上重新开辟的了一个地址空间存储yL,再把name重新指向有yL的堆区。
        }
    }


字符串类型通过改变下标修改字符串:
class Program
    {
        static void Main(string[] args)
        {
            string str = "hello world";
            
            Console.WriteLine(str[3]);  //字符串可以通过下标访问元素,
            //str[3] = 'a';         //但不能通过下标改变元素
            
            char[] chr = str.ToCharArray(); //把字符串类型转换为数组类型
            chr[3] = 'b';
            str = new string(chr);      //再把数组类型转换为给字符串
            Console.WriteLine(str);
        }
    }

字符串分割:

class StringSegmentation
    {
        public static void  PrintfStringSeg()
        {
            string _str = "he+l__l>o w+o_r l d";
            char[] _seg = { ' ', '+', '_', '>' };   //需要分割出去的字符
            string[] str = _str.Split(_seg, StringSplitOptions.RemoveEmptyEntries); //分割不填充出去的字符位不填充空字符
            for (int i = 0; i < str.Length; i++)
            {
                Console.Write(str[i]);
            }
            Console.WriteLine();
        }
    }

path: C-_learn\object\Four ==>class StringSegmentation

字符串替换

static void Main(string[] args)
        {
            string str = "what your name is yinli";
            if (str.Contains("yinli"))  //查找是否有关键字yinli
            {
                str = str.Replace("yinli", "lili"); //替换yinli为wangKing
            }
            Console.WriteLine(str);
        }

字符串截取:

 static void Main(string[] args)
        {
            string str = "what is your name yinli";
            str = str.Substring(0,4);   //截取字符串,从索引0开始截取4个字符
            Console.WriteLine(str);
            
            str = str.Substring(3);   //截取第3个字符
            Console.WriteLine(str);
        }

判断字符串的开始跟结尾:

 static void Main(string[] args)
        {
            string str = "what is your name yinli";
            if (str.StartsWith("what"))     //判断字符的开始
            {
                Console.WriteLine("str字符串是以what开始的.");
            }
            else
                Console.WriteLine("不是");
                
            if (str.EndsWith("what"))	//判断字符串的结尾
            {
                Console.WriteLine("str字符串是以what开始的.");
            }
            else
                Console.WriteLine("不是以what结尾的");    
        }

字符串补充:

  1. Indexof() —>判断某个字符串在字符串中第一次出现的位置,如果没有返回-1。
  2. LastIndexof() —> 判断某个字符串在字符串中最后一次出现的位置,如果没有返回-1.
  3. Trim() —> 去掉字符串中前后空格
  4. TrimEnd() —>去掉字符串中结尾的空格
  5. TrimStart() —> 去掉字符串中前面的空格
  6. string.IsNullOrEmpty() —> 判断一个字符串是否为空或者为null
  7. string.Join() —> 将字符串按照指定的字符串连接,返回一个字符串。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 C#进阶系列——WebApi 路由机制剖析:你准备好了吗? ................................................................................................... 3 一、MVC和WebApi路由机制比较 ........................................................................................................................................ 5 1、MVC里面的路由 ......................................................................................................................................................... 5 2、WebApi里面的路由 ................................................................................................................................................... 5 二、WebApi路由基础 ............................................................................................................................................................. 7 1、默认路由 ..................................................................................................................................................................... 7 2、自定义路由 ............................................................................................................................................................... 10 2.1、自定义路由一:匹配到action ................................................................................................................. 11 2.2、自定义路由二 ............................................................................................................................................... 12 3、路由原理 ................................................................................................................................................................... 12 三、WebApi路由过程 ........................................................................................................................................................... 13 1、根据请求的url匹配路由模板 .............................................................................................................................. 13 2、找到控制器 ............................................................................................................................................................... 13 3、找到action ............................................................................................................................................................. 15 四、WebApi特性路由 ........................................................................................................................................................... 16 1、启动特性路由 ........................................................................................................................................................... 17 2、最简单的特性路由 ................................................................................................................................................... 17 3、带参数的特性路由 ................................................................................................................................................... 19 4、参数的约束和默认值 ............................................................................................................................................... 20 5、路由前缀 ................................................................................................................................................................... 20 五、第一个Restful风格的WebApi服务 ......................................................................................................................... 21 六、总结 ................................................................................................................................................................................. 22 C#进阶系列——WebApi 异常处理解决方案 ......................................................................................................................... 23 一、使用异常筛选器捕获所有异常 ..................................................................................................................................... 24 1、接口级别 ........................................................................................................................................................... 31 2、控制器级别 ....................................................................................................................................................... 33 3、全局配置 ........................................................................................................................................................... 34 二、HttpResponseException自定义异常信息 .............................................................................................................. 35 三、返回HttpError ............................................................................................................................................................ 37 四、总结 ................................................................................................................................................................................. 38 C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解 ......................................................................................... 39 一、void无返回值 ............................................................................................................................................................... 40 二、IHttpActionResult .................................................................................................................................................... 42 1、Json(T content) ........................................................................................................................................... 42 2、Ok()、 Ok(T content) ................................................................................................................................. 45 3、NotFound() ............................................................................................................................................................. 47 4、其他 ........................................................................................................................................................................... 49 4.1、Content(HttpStatusCode statusCode, T value) .................................................................. 49 4.2、BadRequest() ............................................................................................................................................ 49 4.3、Redirect(string location) ................................................................................................................ 50 5、自定义IHttpActionResult接口的实现 ............................................................................................................ 50 三、HttpResponseMessage ............................................................................................................................................... 53 四、自定义类型 ..................................................................................................................................................................... 54 五、总结 ................................................................................................................................................................................. 55 C#进阶系列——WebApi 接口参数不再困惑:传参详解 ..................................................................................................... 56 一、get请求 ......................................................................................................................................................................... 57 1、基础类型参数 ........................................................................................................................................................... 57 2、实体作为参数 ........................................................................................................................................................... 58 3、数组作为参数 ........................................................................................................................................................... 62 4、“怪异”的get请求 .................................................................................................................................................. 62 (1)WebApi的方法名称以get开头 ................................................................................................................ 62 (2)WebApi的方法名称不以get开头 ............................................................................................................ 64 二、post请求 ....................................................................................................................................................................... 66 1、基础类型参数 ........................................................................................................................................................... 66 (1)错误的写法 ................................................................................................................................................... 66 (2)正确的用法 ................................................................................................................................................... 67 (1)错误写法 ....................................................................................................................................................... 68 (2)正确用法 ....................................................................................................................................................... 69 (3)推荐用法 ....................................................................................................................................................... 70 2、实体作为参数 ........................................................................................................................................................... 70 (1)单个实体作为参数 ....................................................................................................................................... 70 (2)实体和基础类型一起作为参数传递 ........................................................................................................... 73 3、数组作为参数 ........................................................................................................................................................... 74 (1)基础类型数组 ............................................................................................................................................... 74 (2)实体集合 ....................................................................................................................................................... 74 4、后台发送请求参数的传递 ....................................................................................................................................... 75 三、put请求 ......................................................................................................................................................................... 77 1、基础类型参数 ........................................................................................................................................................... 77 2、实体作为参数 ........................................................................................................................................................... 77 3、数组作为参数 ........................................................................................................................................................... 78 四、delete请求 ................................................................................................................................................................... 78 五、总结 ................................................................................................................................................................................. 79 C#进阶系列——WebApi 身份认证解决方案:Basic基础认证.......................................................................................... 80 一、为什么需要身份认证 ..................................................................................................................................................... 81 1、我们不加身份认证,匿名用户可以直接通过url随意访问接口: ........................................................... 81 2、增加了身份认证之后,只有带了我们访问票据的请求才能访问我们的接口。 ....................................... 82 二、Basic基础认证的原理解析 ......................................................................................................................................... 84 1、常见的认证方式 ....................................................................................................................................................... 84 2、Basic基础认证原理 ............................................................................................................................................... 85 三、Basic基础认证的代码示例 ......................................................................................................................................... 85 1、登录过程 ................................................................................................................................................................... 85 1.1、Web前端 ....................................................................................................................................................... 85 1.2、登录的API接口 .......................................................................................................................................... 86 2、/Home/Index主界面 .............................................................................................................................................. 88 3、WebApiCORS验证部分(重点) ............................................................................................................................ 90 3.1、在WebApiCORS项目里面自定义一个类RequestAuthorizeAttribute,去继承我们的AuthorizeAttribute这个类。然后重写OnAuthorization方法,在这个方法里面取到请求头的Ticket信息,然后校验用户名密码是否合理。 ............................................................................................................. 90 3.2、在具体的Api接口增加我们上面自定义类的特性 .................................................................................. 91 四、优化 ................................................................................................................................................................................. 92 1、解决API的问题 ...................................................................................................................................................... 92 2、解决ajax的问题 .................................................................................................................................................... 93 3、解决特殊不想使用验证的方法 ............................................................................................................................... 94 五、总结 ................................................................................................................................................................................. 95 C#进阶系列——WebApi 跨域问题解决方案:CORS ............................................................................................................. 95 一、跨域问题的由来 ............................................................................................................................................................. 96 二、跨域问题解决原理 ......................................................................................................................................................... 96 三、跨域问题解决细节 ......................................................................................................................................................... 96 1、场景描述 ................................................................................................................................................................... 97 2、场景测试 ................................................................................................................................................................... 99 1)我们不做任何的处理,直接将两个项目运行起来。看效果如何 ............................................................... 99 2)使用CORS跨域 ................................................................................................................................................ 99 3)CORS的具体参数设置。 ............................................................................................................................... 103 四、总结 ............................................................................................................................................................................... 104 C#进阶系列——WebApi 接口测试工具:WebApiTestClient ........................................................................................ 105 一、WebApiTestClient介绍 ........................................................................................................................................... 106 二、WebApiTestClient展示 ........................................................................................................................................... 106 三、WebApiTestClient使用 ........................................................................................................................................... 116 1、如何引入组件 ......................................................................................................................................................... 116 2、如何使用组件 ......................................................................................................................................................... 118 1、修改Api.cshtml文件 ................................................................................................................................. 118 2、配置读取注释的xml路径 ............................................................................................................................ 119 3、测试接口 ......................................................................................................................................................... 121 四、总结 ............................................................................................................................................................................... 123

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值