C# 静态类与非静态类
2023-02-26 10:20:50 时间
区别
静态类与非静态类的重要区别在于==静态类不能实例化==,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,它防止在类的内部声明任何实例字段或方法。
特点
1、静态类中只能包含 静态成员(构造方法、字段、属性),在静态类中无法实例化
下面这些是测试
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
1.1 静态类中声明静态变量
错误演示
实例成员就是需要实例化以后才能用的(我这个类要New才能用)
我们给这个变量加上static以后就可以用了,变成静态变量了
1.2 静态类中声明静态方法
我们在静态类中搞一个带参函数
错误演示
加个static
我们看下如何输出静态方法和静态变量,把上面两个输出一下
StaticClass1.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StatacTest { public static class StaticClass1 { public static string name = "lucky"; public static int returnAge(int age) { return age; } } }
Program.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StatacTest { class Program { static void Main(string[] args) { //输出静态类中的静态变量和静态方法 Console.WriteLine(StaticClass1.returnAge(6)); Console.WriteLine(StaticClass1.name); } } }
2、在非静态类中可以声明静态类成员
NoStaticClass.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StatacTest { class NoStaticClass { public static char sex='男'; public static int PrintTel(int tel) { return tel; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StatacTest { class Program { static void Main(string[] args) { //输出非静态类中的静态变量和静态方法 Console.WriteLine(NoStaticClass.sex); Console.WriteLine(NoStaticClass.PrintTel(66666666)); } } }
我们把NoStaticClass.cs里面的static去掉
在输出脚本上马上就报错了
需要实例化以后才能搞
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- 详解GMP调度器
- java-AOP面向切面编程
- 一个支持消息推送,文件管理,在线用户监控的后台权限管理系统来了
- 新蜂商城的mybatis plus版本,添加了秒杀专区、优惠卷领取以及后台搜索功能
- 三个线程交替打印ABC100次问题思考
- 三个线程交替打印ABC100次问题思考之二,使用信号量的优雅实现
- 我fork的110+star的newbee-mall商城V2.2.0发布啦
- Springboot3.0升级填坑
- 用户重复注册分析-多线程事务中加锁引发的bug
- 异步批处理教程
- 多数据源事务处理-涉及分布式事务
- Ajax下载文件添加进度条教程
- Java Netty框架自建DNS代理服务器教程
- Mybatis返回集合类型到底是空集合还是null??源码解读
- 敏捷测试漫谈
- 当测试遇上微创新
- 你对测试开发是否有误解
- 凤凰沙盘回顾
- 你“被”全链路了么
- 关于看板的思考与总结