网站首页 > 技术教程 正文
前言
正所谓磨刀不误砍柴工,C#上位机软件开发能力的提升离不开对C#语法的精通,本文讲解C#中类的概念,在C#中类分为两大类,一种是静态类、一种是非静态类,其中非静态类的功能更加强大,下面分别介绍:
1、静态类
静态类有几个重要的特点:
1)无法实例化:由于静态类不能被实例化,因此它不会占用对象内存。
2)静态成员:静态类只能包含静态成员(静态方法、静态属性、静态事件等)。
3)全局访问点:静态类可以作为全局访问点,提供对一组静态方法的访问。
4)无法继承:静态类不能被继承。由于它们不能被实例化,所以继承它们没有意义。
静态类使用关键字static 修饰,它的成员也要使用static 修饰,如下代码:
//自定义一个静态类
static class StaticClass
{
public static string Name { get; set; } = "小王";
public static int Add(int a, int b)
{
return a + b;
}
public static int Multiply(int a, int b)
{
return a * b;
}
}
调用:
int a = StaticClass.Add(10, 20);
int b = StaticClass.Multiply(2, 4);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(StaticClass.Name );
输出:
30
8
小王
上面的代码中Add方法是一个静态方法,使用类名.方法名 这样的方式去调用,Name 是一个静态属性,使用类名.属性名这样的方式去调用。
2、非静态类(使用的比较多)
1)可以实例化:你可以使用 new 关键字来创建非静态类的对象。
2)实例成员:非静态类可以包含实例成员(实例方法、实例属性、实例事件等),这些成员属于类的每个实例。
3)继承:非静态类可以被其他类继承,实现代码的重用和扩展。
这个非静态类也是一个引用类型,参考代码如下:
class NotStaticClass
{
public string Name { get; set; } = "小李";
public int Add(int a, int b)
{
return a + b;
}
public int Multiply(int a, int b)
{
return a * b;
}
}
调用:
NotStaticClass notStaticClass = new NotStaticClass();
notStaticClass.Add(10, 20);
notStaticClass.Multiply(2, 4);
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(notStaticClass.Name );
输出:
30
8
小李
我们可以看到对于非静态类的调用都是使用new关键字,new这个类的对象出来,然后使用这个对象名.方法名 去调用方法,对象名.属性去获取属性。
总结
在C#编程中一般没有特别要求必须使用静态或者非静态类,一般使用非常频繁的类可以写成静态类。
- 上一篇: CSharp学习笔记(17)
- 下一篇: CSharp学习笔记(20)
猜你喜欢
- 2024-11-19 C# 文字识别(OCR)
- 2024-11-19 c#手机开发Maui实现条形码扫描
- 2024-11-19 CSharp学习笔记(7)
- 2024-11-19 CSharp学习笔记(10)
- 2024-11-19 37岁辞职自学C#上位机开发通信类库第2天:进度记录
- 2024-11-19 CSharp学习笔记(16)
- 2024-11-19 python调用CSharp动态库
- 2024-11-19 C# 读取CSV文件
- 2024-11-19 CSharp学习笔记(14)
- 2024-11-19 C#委托—马工教你轻松玩转委托
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)