1.数据类型
数值类型:char , double ,float ,int ,bool ,decimal ,结构体 ,枚举 ...
引用类型:数组 ,String ,委托 ...
注意的是String也是引用类型
还有就是关于装箱,拆箱的问题(大的数据类型转换为小的为拆箱,反之为装箱)注意装箱是把数据类型也装入了;
举例如下:
(装箱) double k = 3.3;
object g;
g = k;
Console.WriteLine(g);
这个就是装箱,但是装箱会很耗系统资源;
double k = 3.3;
object g;
g = k.ToString();
Console.WriteLine(g);
这样就不会消耗太多系统资源,因为string型也是引用类型不用转;
(拆箱)
object k = 5;
int i;
i = int.Parse(k.ToString());
Console.WriteLine(i);
拆箱的时候必须转化为原来装箱时的数据类型,不然会出错;
object是所有数据类型的父类,他是引用类型其实多数的引用类型都是类,所有的数值类型都是结构体
注意:
float k = 1.5;
Console.WriteLine(k);
这样是不对的,因为系统默认是double,所以必须显示的表示,所以要在1.5后加f;
与float相同的还有decimal也要加后缀M或者m;
其他的一次类推,实践才会知道;
关于引用类型和数值类型的比较:数值类型存储在线程堆栈中,而引用类型存储在委托敦中;
for example:
int a = 3;
int b = 5;
Console.WriteLine(a);
Console.WriteLine(b);
changnum chk = new changnum();
chk.chang(a, b);
Console.WriteLine(a);
Console.WriteLine(b);
}
class changnum
{
public void chang(int a, int b)
{
int temp;
temp = a;
b = a;
b = temp;
}
这个就是值传递;传后数值不变
int[] arri = new int[] { 8};
int[] arrj;
arrj = arri;
arrj[0] = 100;
Console.WriteLine(arri[0]);
这个就是引用类型,区别在于引用类型的发生了交换;
数组的定义:int[] arri=new int[]{1,3,5.....};这样比较简单
也可以是:int[] arri=new int[5];
arri[0]=1;
arri[1]=2;
................
2.流程控制
1.for语句,while语句,do while语句,switch语句,if..else..语句
这个C已经很清楚的话就没问题
2.foreach语句
这个C中是没有的,下面举个例子
int[] arri = new int[3];
arri[0] = 7;
arri[1] = 8;
arri[2] = 9;
foreach (int i in arri)
{
Console.WriteLine(i);
}
遍历整个数组;
3.集合和数组
有两种堆栈,和队列
堆栈:先进后出(FILO)
Stack<int> stk = new Stack<int> { };
stk.Push(1);
stk.Push(2);
foreach(int i in stk)
{
Console.WriteLine(i);
}
取出用push,取出来看是peek;
队列:FIFO
Queue<int> que = new Queue<int> { };
que.Enqueue(1);
que.Enqueue(2);
foreach (int i in que)
{
Console.WriteLine(i);
}
取出是Dequeue,取出来看是peek;
hashtable:
HashSet<int> hs = new HashSet<int> { };
hs.Add(1);
hs.Add(2);
hs.Add(3);
foreach (int i in hs)
{
Console.WriteLine(i);
}
还有交错数组就不说了;
3.面向对象(慢慢想,比较抽象)
class Program
{
static void Main(string[] args)
{
car car1 = new car();
string name=car1.name;
Console.WriteLine(name);
car1.menony();
}
}
public class car
{
public string name="兰博基尼";
public void menony()
{
Console.WriteLine("$1000000000");
}
}
4.类的语法....(4种)
1.普通的类
public class car
{
public string name="兰博基尼";
public void menony()
{
Console.WriteLine("$1000000000");
}
}
2.静态类
static void Main(string[] args)
{
car car1 = new car();
string name=car1.name;
Console.WriteLine(name);
car1.menony();
}
3.抽象类abstract
4.密封类sealed
5.继承
普通函数的继承:
static void Main(string[] args)
{
ZClass zl = new ZClass();
zl.F1();
FClass fl = new FClass();
fl.F1();
C#中还允许用子类实现父类
比如
FClass fl = new ZClass();
fl.F1();
}
class FClass
{
public void F1()
{
Console.WriteLine("F1 father");
}
}
class ZClass:FClass
{
}
私有成员不能继承;
internal是本应用程序中可以与public等同;
protected是只能在子类中访问;
子类可以影藏父类的方法属性等,可以用new关键字或者没有都可以;
如果要覆盖就用virtul和override关键字,这样的话,用子类实例父类的时候条用的是子类的方法和属性,因为已经覆盖;
关键字中乐意没有virtul但是不能没有override;
2.静态类
不能被继承;
但静态方法和属性属于类;
3.密封类
也不能被继承;
4.抽象类
抽象类中的抽象方法等不能在抽象类中实现,只能定义;
抽象类中的抽象方法等定义,必须在继承它的类中实现;
抽象类不能实例,只能通过它的子类来实现,并且实现时应该用override关键字覆盖;
关于构造函数的继承,应该是不能继承的,但是如果实现子类的构造方法和父类的构造方法
不一致,那么我们必须base关键字调用父类的构造函数;
this关键字自己看,一样的!
接口:
接口可以继承接口,抽象类可以继承接口;
类可以继承接口,接口不能继承类;
具体的在研究设计模式的时候再深入;
类只能单重继承,接口可以多重继承;
委托和事件:
delegate and event
分享到:
相关推荐
这份C#笔记旨在帮助初学者快速掌握C#编程基础,逐步构建对面向对象编程的理解,同时通过实践操作提升编程技能。随着学习的深入,你可以进一步探索更高级的主题,如Asynchronous Programming、Dependency Injection和...
在本项目中,我们将深入探讨"C#笔记本程序代码实现过程"这一主题。C#是一种广泛应用于桌面应用开发、游戏开发以及Web服务的编程语言,由微软公司开发并推广。在这个特殊的案例中,我们关注的是使用C#来创建一个类似...
《C#笔记本——初学者的编程宝典》 在编程世界中,C#是一门强大且广泛应用的语言,尤其在Windows平台上的开发工作中占有重要地位。本文将深入探讨刘鹏的C#学习资源,这个名为“c#笔记本”的源码程序,它为编程新手...
在"笔记C#"中,你将找到关于这些主题的详细解释和实例,包括每个概念的使用场景和最佳实践。无论你是初学者还是有一定经验的开发者,这个资料都能帮助你巩固基础,探索C#的深度,提升编程技能。希望你在学习过程中...
1. **C#笔记.docx** 这份文档可能包含了C#的基础语法和高级特性。C#的基础部分可能涵盖变量、数据类型(如int, string, bool等)、控制流(如if语句、for循环、while循环)、函数、类和对象的创建与使用。高级部分...
深度学习C#笔记深度学习C#笔记深度学习C#笔记深度学习C#笔记深度学习C#笔记
C#笔记
### C#笔记-Tantrong #### 一、注释语句 在C#中,注释用于在代码中添加说明或暂时禁用代码段。C#支持三种类型的注释: 1. **单行注释**:使用 `//` 开头,注释一直持续到行尾。 2. **多行注释**:使用 `/*` 开始...
在本项目中,"C# 笔记本蓝牙遥控智能小车机器人源码"是一个将C#编程语言与蓝牙通信技术结合,实现对智能小车机器人的远程控制的应用实例。这个项目分为上位机(通常指笔记本)和下位机(小车机器人)两部分,其中...
【标题】:“笔记本(C#)” 【描述】中的知识点主要涉及了C#编程语言以及在软件开发中常见的文件操作功能。C#是一种面向对象的、类型安全的、现代的编程语言,由微软公司开发,主要用于构建Windows平台的应用...
7. 工厂模式:根据标签"笔记本工厂学习笔记",可能还会涉及设计模式中的工厂模式。这可能表现为一个`NotebookFactory`类,用来创建`Notebook`实例,提供统一的创建接口。 通过这个练习,学习者不仅可以掌握C#的基本...
C#学习精品电子资料 C#笔记 C#学习精品电子资料 C#笔记 C#学习精品电子资料 C#笔记 C#学习精品电子资料 C#笔记
在C#编程环境中,开发一个具备基础笔记本功能的应用程序,如"Note",涉及的关键知识点主要包括文件操作(保存、打开)、文本处理(复制、粘贴)以及搜索功能。以下是这些核心功能的详细解释: 1. **文件操作**: -...
本文将深入探讨“C#笔记本Wifi无线网络共享软件源码”这一主题,它允许用户通过编程的方式,利用笔记本的无线网络接口创建一个热点,从而与其他设备共享网络连接。 首先,我们需要了解C#编程语言。C#是微软开发的一...
c#笔记·1,经典的入门材料
C#笔记(20220104190638).pdf
C#笔记(20220104190922).pdf
C#笔记(20220104213809).pdf
C#笔记(20220104204247).pdf