c#基础(视频)
可空类型
类型后面+?就可以声明可空类型了,可空类型和普通的类型是两种类型,赋值时需要进行类型转换
例如
double? num=null;
面向对象
三大特征
封装
打包,便于管理
继承
拿来主义,优势:解决代码冗余,特征:单根性(c#和java类语言的特征),继承性,javascript可以多继承,定义:将一个类库作为原始模版,在其上扩展另外的类库
构造方法的执行顺序:子类默认调用父类的构造方法
new对象的时候分2部分
1.New,创建对象,在内存开辟空间
2.调用构造方法,初始化数据,(先调用父类的构造方法,再调用自己的构造方法)
子类中的base()代表其父类的默认的无参的构造方法
如果父类没有无参的构造方法,只有有参数的构造方法,子类调用时
class Student:Person
public Student (string name):base(name)
{
}
里式转换原则
子类可以赋值给父类对象
父类对象可以强制转化为对应的子类对象
class MyBase{}
class MyClass1:MyBase{}
class MyClass2:MyBase{}
//里式第一条
MyBase m1=new MyClass1();
//里式第二条
MyClass1 m2=(MyClass1)m1;
//is,返回是bool类型
m1 is MyClass1;
//as ,转换成功则赋值,转换失败则为null
MyClass1 m4=m1 as MyClass1;
多态
对象在调用同一个方法的时候表现出来的多种状态
父类统一调用,子类具体实现(重写基类方法具体实现)
隐藏基类方法实现多态
口诀:New则隐藏,over重写;隐藏看类型,重写只管新
开启新的进程打开指定路径的文件。不用管文件格式,系统会默认使用对应的程序打开文件
System.Diagnostics.Process.Start(“文件全路径”);
接口语法
[访问修饰符] interface I接口名
{
接口成员
}
public interface Idable
{
void Da();
}
// 实现接口
abstract class CCC:Idable // 继承自接口, 实现接口
{
// 假定没有接口存在,但是需要一个名字为Da,没有返回值,没有参数的方法
public abstract void Da();
}
this和base
this:当前对象
base:子类中代表父类对象。
一个类的方法后跟:base(),代表调用这个方法前先调用父类的构造方法
public class():base()
{
}
7、 String 类型
-> 构造方法
new string(char[])
new string(char, int)
-> 常用属性
索引(Chars) str[3]
Length
-> 常用方法
增:
构造方法
string Insert(int startindex, string value);//给下标为startindexd的位置添加value值
string string.Join(string splitStr, string[]);//用splitStr, 把字符串数组连接起来
string Replace(string, string); // "123".Replace("2", "2222");
运算符+
string string.Concat(string[]); // string.Join("", list);//把字符串数组的每个元素连接起来
string PadLeft(int, char);
// 在字符串的左边填充一定空格或字符char,直到字符长度为int所表示的长多一样为止
string PadRight(int, char);
删:
string Remove(int startIndex, int count); // "012345".Remove(3,2); => "0125"
string Substring(int startIndex, int count); // "012345".Substring(3,2); => "34"
string Trim(params char[]);
string TrimStart();
string TrimEnd();
改
首先ToCharArray(),在Join或Concat或构造函数
string ToUpper();
string ToLower();
查
bool Contains(string);
int IndexOf(char, int);
int LastIndexOf(char, int); // 获得文件名:"C:\123\456\789.mp3";
int IndexOfAny(char[], int); // 找出字符串中所有的e和a
int LastIndexOfAny(...);
bool StartsWith(string);
bool EndsWith(string);
其他
bool string.IsNullOrEmpty(string)
string[] Split(char[], StringSplitOptions.RemoveEmptyEntries); //entry
// "I have a dream".Split(' ');
bool Equals(string);
bool string.Equals(string, string);
int string.Compare(string s1, string s2);
s1 > s2 1
s1 = s2 0
s1 < s2 -1
string string.Format(string, object[]);
8、 StringBuilder
-> 字符串不可变,长期拼接字符串性能较低
-> Stringbuilder
Append(string);
AppendLine(string);
AppendFormat(“{0}{1}{2}{3}”, 1, “23”, “ab”, true);
ToString();
//读取文件的所有行
string[] lines = File.ReadAllLines(“文件路径”, Encoding.Default);
c#基础(视频)的更多相关文章
- [[其他教程]] 2015年最新版iOS基础视频_最适合初学者入门
主讲:孙庆虎类型:iOS 适合对象:初学者入门视频介绍:本视频是iOS学院精心录制的免费精华版iOS语言基础视频,该视频特点在于最大程度保证了知识点的完整性,按知识点进行视频录制,每个视频控制在20分 ...
- 【液晶模块系列基础视频】4.5.X-GUI图形界面库-进度条等函数简介
[液晶模块系列基础视频]4.5.X-GUI图形界面库-进度条等函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...
- 【液晶模块系列基础视频】4.4.X-GUI图形界面库-画tab函数简介
[液晶模块系列基础视频]4.4.X-GUI图形界面库-画tab函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...
- 【液晶模块系列基础视频】4.3.X-GUI图形界面库-画box函数简介
[液晶模块系列基础视频]4.3.X-GUI图形界面库-画box函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...
- 【液晶模块系列基础视频】4.2.X-GUI图形界面库-画矩形函数简介
[液晶模块系列基础视频]4.2.X-GUI图形界面库-画矩形函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址: ...
- 【液晶模块系列基础视频】4.1.X-GUI图形界面库-画线画圆等函数简介
[液晶模块系列基础视频]4.1.X-GUI图形界面库-画线画圆等函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地 ...
- 【液晶模块系列基础视频】2.虚拟U盘
[液晶模块系列基础视频]2.虚拟U盘 ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee ...
- 【液晶模块系列基础视频】1.3.iM_TFT30模块简介
[液晶模块系列基础视频]1.3.iM_TFT30模块介绍 ============================== 技术论坛:http://www.eeschool.org 博客地址:http:/ ...
- 【液晶模块系列基础视频】1.2.iM_RGB模块介绍
[液晶模块系列基础视频]1.2.iM_RGB模块介绍(上) [液晶模块系列基础视频]1.2.iM_RGB模块介绍(下) ============================== 技术论坛:http ...
- 【液晶模块系列基础视频】1.1.iHMI43模块介绍
[液晶模块系列基础视频]1.1.iHMI43模块介绍(上) [液晶模块系列基础视频]1.1.iHMI43模块介绍(下) ============================== 技术论坛:http ...
随机推荐
- ubuntu 22.04安装harbor
一.概述 Harbor 是一个企业级的云原生容器镜像仓库,由 VMware 开发并贡献给 Cloud Native Computing Foundation (CNCF).它在传统的 Docker R ...
- Linux内存管理神器:smem工具
大家好,我是良许. 今天给大家分享一款 Linux 系统里的内存管理神器:smem . smem 是Linux系统上的一款可以生成多种内存耗用报告的命令行工具.与现有工具不一样的是 smem 可以报告 ...
- seata-server 1.3.0整合nacos,使用nacos做注册和配置中心
前言 关于seata版本的选择和更详细的安装,可以参考 SpringCloud Alibaba之Seata入门及踩坑 本篇博客是整合nacos,nacos直接下载安装解压运行就可以了. seata的下 ...
- lua随写
--local util={}--function util.Split(str, sep)-- local sep, fields = sep or ":", {}-- loca ...
- 使用java代码获取JVM信息
转载请注明出处: 最近在环境中定位服务问题,由于服务使用的docker部署的,且使用的docker镜像,在启动之后,容器内没有jdk相关的工具[jstat.jmap等等]:于是采用 在项目中使用jav ...
- SpringMVC处理请求源码分析
一.先从Servlet案例说起 1.编写Servlet代码 2.配置web.xml(可选) 二.从DispatcherServlet说起 有Servlet基础的同学应该都知道,前端的每一个请求都会由一 ...
- AQS的release(int)方法底层源码
一.定义 release(int) 是 AQS(AbstractQueuedSynchronizer)中的一个核心方法,用于在独占模式下释放同步状态.如果释放成功,则会唤醒等待队列中的后继节点,使其有 ...
- Robot Framework全局变量集合取值
在一次测试中,可能需要使用多个不同的会员,即需要多注册多个会员.如此配置单一参数化是无法满足对所有注册会员名的统一管理,这里引入参数变量组来实现 步骤如下: 1.脚本目录点击总目录,右键点击New R ...
- 为什么 Spring 循环依赖需要三级缓存,二级不够吗?
Spring循环依赖解决机制中引入了三级缓存,这是因为仅使用二级缓存无法灵活处理代理Bean的早期暴露需求.以下是为什么需要三级缓存的详细分析: 1. 二级缓存的局限性 二级缓存通常用于存储早期暴露的 ...
- 如何在 Java 中进行内存泄漏分析?
如何在 Java 中进行内存泄漏分析? 内存泄漏是指程序中无法访问的对象仍然被占用内存,导致内存无法回收,最终导致内存不足.程序崩溃等问题.Java 中的内存泄漏通常与垃圾回收机制的工作方式相关,虽然 ...