C#,入门教程(29)——修饰词静态(static)的用法详解

上一篇:

C#,入门教程(28)——文件夹(目录)、文件读(Read)与写(Write)的基础知识icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/124231282

static 是编程高频词之一。

读了一些网文,感觉很简单的事,说的不会话了,忍不住写篇短文凑凑热闹。

你这么理解吧:

(1)静态(类)就是共享单车,随便骑;

(2)非静态类就是私家车,没有钥匙开不了。

先看一个实例:

常见的数学函数:

Math.Sqrt,Math.Pow ....

都属于 System 命名空间·静态类 Math ·静态方法。

== 属于共享企业·共享单车·共享功能

完整的写法是:

double r2 = System.Math.Sqrt(2.0);double p2 = System.Math.Pow(2.0,2.0);

翻译成白话就是:

骑着 哈罗·单车·司库拉特 或 哈罗·单车·泡妞。

微软的程序员透露说,他们是这么写的 :P

namespace Systen
{public static Math{public static double Sqrt(double x){...}public static double Pow(double x){...}}
}

其实把 泡妞秘籍 Pow 的代码,完全不修改,这么写,也没任何问题。

namespace MySysten
{public static MyMath{public static double Sqrt(double x){...}public static double Pow(double x){...}}
}

使用:

double mp2 = MySystem.MyMath.Pow(2.0,2.0);

小结:

static 可以理解为 common class or property or function(method)。

(1)static function 的参数,一般是传入的,一般不要用 class 的 property;

(2)static class 的 property function 都是 static 的;

(3)非 static class 的  property function 也可以是 static 的;

public NonstaticClass
{public static int TripleSum(int a, int b, int c){return a+b+c;}
}

调用:

int d = NonstaticClass.TripleSum(a, b, c);

而不是:

NonstaticClass nc = new NonstaticClass();
int d = nc.TripleSum(a, b, c);

POWER BY TRUFFER.CN
BY 315SOFT.COM 

下一篇:

C#,入门教程(30)——扎好程序的笼子,错误处理 try catchicon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/124182386

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.21号qt

1.QMainWindow中常用的类 继承于QMainWindow类,原因该类提供了QWidget没有提供的成员函数。 菜单栏、工具栏、状态栏、浮动窗口(铆接部件)、核心部件 1.1 菜单栏 QMenuBar //创建菜单栏 QMenuBar 最多只能有一个 QMenuBar *mbar menu…

Hutool简介和常用类

Hutool简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 Hutool中的工具方法来自每个用户的精雕细琢&…

【鸿蒙 HarmonyOS 4.0】数据持久化

一、数据持久化介绍 数据持久化是将内存数据(内存是临时的存储空间),通过文件或数据库的形式保存在设备中。 HarmonyOS提供两种数据持久化方案: 1.1、用户首选项(Preferences): 通常用于保存应用的配置信息。数据通…

android 全局异常处理封装

app出现了问题,尤其是多线程问题,某个线程出了问题,很不好找,那是不是可以搞一个统一的处理类,将所有的异常信息都统一到一个地方呢,原本只是一个知识点,但我发现这里还可以 保存异常信息到本地…

Vue 进阶系列丨实现简易reactive和ref

Vue 进阶系列教程将在本号持续发布,一起查漏补缺学个痛快!若您有遇到其它相关问题,非常欢迎在评论中留言讨论,达到帮助更多人的目的。若感本文对您有所帮助请点个赞吧! 2013年7月28日,尤雨溪第一次在 GItHu…

计算机网络Day02--物理层(一)

计算机网络Day02–物理层 物理层基本概念 物理层考虑的是怎么才能在连接各种计算机的传输媒体上传输比特流,而不是具体的传输媒体 作用:尽可能屏蔽掉不同传输媒体和通信手段的差异 用于物流层的协议也称为物流层规程 主要作用:解决计算机…

COCI2015-2016#1 RELATIVNOST

P6533 [COCI2015-2016#1] RELATIVNOST 题目大意 小 L L L在卖画。这些画分为彩色画和黑白画,小 L L L希望有至少 c c c个人会买走他至少一张彩色画。 第 i i i个人至多会购买 a i a_i ai​张彩色画或者 b i b_i bi​张黑白画,且每个人至少购买一张画。…

Android---Jetpack Compose学习007

Compose 附带效应 a. 纯函数 纯函数指的是函数与外界交换数据只能通过函数参数和函数返回值来进行,纯函数的运行不会对外界环境产生任何的影响。比如下面这个函数: fun Add(a : Int, b : Int) : Int {return a b } “副作用”(side effe…

单例模式的介绍

单例模式(Singleton)是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点。其核心思想是通过限制类的实例化次数,防止多个实例同时存在,从而避免了多线程竞争和资源浪费,提高了代码…

【蓝桥杯单片机入门记录】静态数码管

目录 一、数码管概述 (1)认识数码管 (2)数码管的工作原理 (3)LED数码管驱动方式-静态显示 二、数码管电路图 三、静态数码管显示例程 (1)例程1:数码管显示某一位&a…

vue、thinkphp实现腾讯云对象存储COS图片上传

环境&#xff1a; thinkphp6 vue2 vant2.12 composer安装qcloud-sts-sdk composer require qcloud_sts/qcloud-sts-sdk获取COS临时id、key的sts接口 <?php declare (strict_types 1);namespace app\index\controller; use QCloud\COSSTS\Sts;class CosController {//h…

如何为PostgreSQL设置自增主键?

在 PostgreSQL 中&#xff0c;自增主键通常是通过使用 SERIAL 类型或在新版本中使用 IDENTITY 列来实现的。 1. 使用 SERIAL 类型 SERIAL 是一个自动增加的整数&#xff0c;常用于主键。当插入新的行时&#xff0c;PostgreSQL 会自动为这个列生成一个新的值。   例如 CREAT…

PYQT5-自定义事件

from PyQt5.QtCore import QEvent, QObject from PyQt5.QtWidgets import QApplication import sys# 自定义事件类 class CustomEvent(QEvent):# PYQT5 预留给用户自定义事件类型的起点为 QEvent.User1000custom_event_type QEvent.registerEventType()# 也可以这样写# custom…

2024.2.22

P1162 #include<map> #include<vector> #include<iostream> #include<math.h> #include<algorithm> #include<string> using namespace std; const int N 1020; int n; int g[N][N];//标记数组 int a[N][N];//储存数组 int dx[] { -1…

webstorm光标变成方块解决办法_webstorm光标变粗不能换行

webstorms光标变了 键盘上的insert是切换的快捷键&#xff0c;敲insert就可以来回切换了

回顾 | Java面向对象 多态篇

多态是面向对象编程中的一个重要概念&#xff0c;它允许不同的对象对同一消息做出不同的响应。 通过多态&#xff0c;可以通过父类或接口定义的引用变量来操作子类或实现类的对象&#xff0c;从而实现同一方法在不同对象上的不同行为。 在Java中&#xff0c;多态性主要通过继…

双通道并行网络,想用哪个网络用哪个,MATLAB代码

本期可谓是宝藏篇&#xff01;学会本期的思想&#xff0c;帮助你分分钟找到创新点&#xff0c;且不与别人重复&#xff01; 本期采用MATLAB代码&#xff0c;实现一种“基于格拉姆角场与并行CNN的故障诊断方法”。该方法的具体实现可以参考文献&#xff1a; [1]李宗源,陈谦,钱…

React native更改包名后,启动app的activity包名不生效问题

这篇文章本不算记录的&#xff0c;因为实际开发中&#xff0c;类似这种小问题会有很多很多&#xff0c;因为导致问题的原因千奇百怪&#xff0c;解决方案也不尽相同&#xff0c;所以也都没有记录。 但今天看到我10年写的问题解决小文章&#xff0c;被网友收藏了&#xff0c; 感…

普中51单片机学习(EEPROM)

EEPROM IIC串行总线的组成及工作原理 I2C总线的数据传送 数据位的有效性规定 I2C总线进行数据传送时&#xff0c;时钟信号为高电平期间&#xff0c;数据线上的数据必须保持稳定&#xff0c;只有在时钟线上的信号为低电平期间&#xff0c;数据线上的高电平或低电平状态才允许…

分享WebGL物体三维建模

界面效果 代码结构 模型素材类似CT (Computed Tomography)&#xff0c;即电子计算机断层扫描&#xff0c;它是利用精确准直的X线束、γ射线、超声波等&#xff0c;与灵敏度极高的探测器一同围绕物体的某一部位作一个接一个的断面扫描。 坐标系统 渲染流程 渲染流程是个将之前准…