静态方法与静态变量一样,属于类本身,而不属于哪个类的一个对象。调用一个被定义为static的方法,只有通过在它前面加上这个类的名称。一般定义里说是可以通过实例调用的。其他语言我还没测试,但是在C#中是不行的,只能通过类型名称引用它(静态变量也是哦)。

     class Class1
{
public static string No { set; get; }
public string Second { set; get; } public static void Wmt()
{
No = "我是静态成员";
} } class Class2
{
public void Test()
{
Class1.Wmt();
Class1.No = "我是静态成员";
var class1 = new Class1();
class1.Second = "我是非静态成员"; } }

还有几点:

1、静态方法只能调用类的静态成员,但它内部是可以定义变量的(常量也能放在静态方法里(编译器会隐式设置为静态))

2、一般方法也可以调用静态成员

     class Class1
{
public static string No { set; get; }
public string Second { set; get; } public static void Wmt()
{
string variate = "我是个变量";
No = "我是静态成员";
} public void Www()
{
No = "我是静态成员";
} }

如果类只包含静态方法、属性,那它就是静态类

 static class class1
{
public static string No { set; get; } public static void Wmt()
{ }
}

再提下常量和只读字段的区别吧:

常量是一个包含不能修改的值的变量,它是静态的。而只读字段不仅能在声明时初始化,还能在构造函数中赋值,适合用于要通过计算才能确定初始值。只读字段还能是个实例字段哦,类的每个对象都能有不同的值。注意:不一定非要在构造函数中给只读字段赋值,如果没有赋值,它的值就是特定数据类型的默认值。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
var cl = new class1("I'm readonly");
var c2 = new class1("I'm readonly too");
var c3 = new class1();
Console.WriteLine(cl.Wmt);
Console.Write(c2.Wmt);
Console.Write(c3.Wmt);
Console.Read();
}
}
public class class1
{
public readonly string Wmt;
public class1(string words)
{
Wmt = words;
} public class1()
{
}
} }

运行结果:

复习下知识,再把基础的东西翻出来看看,别有一番体会~~

C#中静态类、静态方法和静态变量的简单说明的更多相关文章

  1. C#中类的实例是不能 获取到类中的静态方法和静态变量(Static)的,及原因

    类中的静态方法和变量是共享的.只能用类名去调用.

  2. SpringBoot @Autowired中注入静态方法或者静态变量

    注:用static去定义一个注入的方法或者配置文件值变量,编译时不会有任何异常,运行时会报空指针. Spring官方不推荐此种方法. 原理: https://www.cnblogs.com/chenf ...

  3. FreeMarker调用Java静态方法以及静态变量的方法

    这里介绍下在类似 Spring+FreeMarker 的架构中如何在FreeMarker中访问Java中的静态方法以及静态变量. 一.首先为了方便以及可复用我们创建一个工具类 /** * FreeMa ...

  4. 关于Java的静态:静态类、静态方法、静态变量、静态块等

    原文地址:Java static keyword - Class, Method, Variable, Block, import - JournalDev 很少看到文章能把静态这个问题解释的很清楚, ...

  5. java中的static使用--静态变量、静态方法

    Java 中的 static 使用之静态变量 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 s ...

  6. 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

    内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { cl ...

  7. java之静态方法,静态变量

    在自动化测试中,经常会用到静态方法和静态变量.那么什么是静态方法和静态变量呢?以及在什么情况下使用呢?下面来说一说 静态方法和静态变量是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象 ...

  8. js中的全局变量和静态变量的使用, js 的调试?- 如果js出错, js引擎 就会停止, 这会 导致 后面的 html中 refer 该函数时, 会报错 函数为定义!!

    效果里面的函数, 如show, hide,slideDown等, 这些都叫 "效果"函数, 但是里面可以包含动画, 也可以 不包含动画. 动画,是指 元素 的内容 是 逐渐 显示/ ...

  9. Swift中的类型属性(静态变量)

    http://blog.haohtml.com/archives/15098 Swift中的类型属性(静态变量) Posted on 2014/06/13 类型属性语法 在 C 或 Objective ...

随机推荐

  1. mongodb数据文件内部结构

    有人在Quora上提问:MongoDB数据文件内部的组织结构是什么样的.随后10gen的工程师Jared Rosoff出来做了简短的回答. 每一个数据库都有自己独立的文件.如果你开启了director ...

  2. 委托,匿名方法,Lambda,泛型委托,表达式树

    一.委托:完成一个委托应分三个步骤://step01:首先用delegate定义一个委托;public delegate int CalculatorAdd(int x, int y);//step0 ...

  3. unity针对iphone的屏幕旋转

    屏幕旋转可以在引擎里设置: 依次点开 Edit——Project Setting——Player 即可设置如图: 接下来的是 雨松大神的 代码控制,本屌是安卓机器,没能测试. C# using Uni ...

  4. OpenGL ES 2.0 摄像机与投影

    1.摄像机的设置 摄像机的位置坐标 摄像机的位置 摄像机up方向 Matrix.setLookAtM( mVMatrix, //存储生成矩阵元素的float[]类型数组 0, //填充起始偏移量 cx ...

  5. HDU 4507 有点复杂却不难的数位DP

    首先来说,,这题我wrong了好几次,代码力太弱啊..很多细节没考虑.. 题意:给定两个数 L R,1 <= L <= R <= 10^18 :求L 到 R 间 与 7 无关的数的平 ...

  6. [Mugeda HTML5技术教程之19]制作可定制贺卡

    本文档通过一个实例介绍可定制贺卡的动画的制作过程.实例包含两部分: 1. 动画部分:介绍动画制作过程中如何给祝福词和落款的文本对象命名,如何给定制按钮定义表单动作. 2. 代码部分:介绍贺卡的脚本逻辑 ...

  7. ldd命令--查看命令依赖的库文件

    .在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行:在Linux环境下通过ldd命令即可实现,在终端下执行:ldd /bin/ls //l ...

  8. RAC之RMAN恢复

    之前整理的RMAN 有关还原的文章: RMAN 系列(五) ---- RMAN 还原 与 恢复 http://blog.csdn.net/tianlesoftware/archive/2010/07/ ...

  9. AJAX实例入门

    一.开门见山 这些时间,瞎子也看得见,AJAX正大踏步的朝我们走来.不管我们是拥护也好,反对也罢,还是视而不见,AJAX像一阵潮流,席转了我们所有的人. 关于AJAX的定义也好,大话也好,早有人在网上 ...

  10. Grunt 插件开发与调式

    1 grunt是什么 官方网站解释的很清楚,http://gruntjs.com/ http://gruntjs.cn/ 它是一种javascript任务运行器,对于需要反复重复的任务,例如压缩.编译 ...