精华内容
下载资源
问答
  • C#静态方法

    2013-10-02 01:59:16
    c#静态方法和非静态方法 C#的类中可以包含两种方法: 静态方法和非静态方法。 使用了static 修饰符的方法为静态方法,反之则是非静态方法。 静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是...

    要点总结:

    静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要

    首先创建一个类的实例,而是采用类名.静态方法的格式 。

     

    静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员

    存在于内存,所以非静态成员可以直接访问类中静态的成员. 公用的处理函数,使用静态方法应该没有问题..牵涉

    到数据共享,静态变量的函数要多考虑...静态变量要小心使用..

     

     

    参考:

    c#静态方法和非静态方法

    C#的类中可以包含两种方法:

    静态方法和非静态方法。

    使用了static 修饰符的方法为静态方法,反之则是非静态方法。

    静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要

    首先创建一个类的实例,而是采用类名.静态方法的格式 。


    1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用!
    static内部只能出现static变量和其他static方法!而且static方法中还不能使用this....等关键字..因为它是

    属于整个类!


    2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

    3.静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存.

    4.C#中的方法有两种:实例方法,静态方法.

    类的方法代码只有一份,它们的生命周期和类是一致的.实例方法是通过对象名调用的,静态方法与类关联而不是

    与对象名关联.


    5.那么在程序中什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数

    据,比如连接字符串,配置信息等,当满足上面所 说的两点时,进行一次读取,以后就可以方便的使用了,同

    时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少 个实

    例,它的静态字段永远都只有一个副本(副本我理解为只有一块内存


    静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员

    存在于内存,所以非静态成员可以直接访问类中静态的成员. 公用的处理函数,使用静态方法应该没有问题..牵涉

    到数据共享,静态变量的函数要多考虑...静态变量要小心使用..

    静态方法
    原理就是共享代码段
    共享代码段不会产生任何问题
    因为代码段都是给CPU作为"读取"用的,除非你进行恶意"修改"运行时的代码段
    所以静态方法是可以放心使用的

    静态变量
    原理就是共享数据段
    同上 只要没有进行"写入"操作就不会产生问题 但是数据通常都是用于读和写 所以静态变量要注意使用

    下面是一个使用静态方法的例子

         class Class1
         {

             [STAThread]

             static void Main(string[] args)

             {

                 int i = MyClass.Add(3,5);    //调用静态方法

                 Console.WriteLine(i);

             }

         }


         class MyClass

         {

             public static int Add(int x,int y )

             {

                 return x + y ;

             }

         }

    展开全文
  • C# 静态方法

    2018-12-12 23:24:56
    static是静态的,它所修饰的成员成为静态成员,静态成员只能用类型去调用 例如:创建一个普通的对象成员的类:Person类 class Person{ public int Age{get;set;} public void SetAge(int a){ Age=a; } } ...

    static是静态的,它所修饰的成员成为静态成员,静态成员只能用类型去调用

    例如:创建一个普通的对象成员的类:Person类

    class Person{
    public int Age{get;set;}
    public void SetAge(int a){
           Age=a;
    }
    }
    

    当想调用这个类里面的属性或者方法是只需要在主程序里定义一个对象去调用他们即可,即:

    Person per = new Person();
    per.Age=10;//调属性
    per.SetAge(10);//调方法
    

    当有静态成员时,静态成员只能用类名去调用,定义的对象是调用不出来的,例如:

    class Person{
    public static int Age{get;set;}
    public static int SetAge(){
         return Age;
    }
    }
    
    

    当需要调用静态成员时需要用类型调用,即:

    Person.Age=10;//调属性
    Person.SetAge(10);//调方法
    

    若一个类里既有静态成员又有非静态成员时,非静态成员可以随意调用,静态成员只能调用静态成员,例如:

    class Person{
    //为了演示需要Age的静态属性和非静态一起写
    public int Age{get;set;}
    public static int Age{get;set}
    
    public static string Name{get;set;}
    //非静态方法调用非静态属性和静态属性
    public int GetAge(){
        return Age;
    }
    //静态方法调用静态属性
    public static string GetName(){
        return Name;
    }
    }
    

    总结:静态成员存在的意义,可以在其他地方直接用类去调用,省去创建对象的过程,例如当只需要调用一个方法,用其功能时,对象创建不创建都无意义时,可以考虑写成静态的。

    展开全文
  • C# 静态方法&非静态方法总结 总结的C# 静态方法&非静态方法总结,有不正确的请指正 操作 静态方法静态方法 同个类中调用 方法名()前面不用加类名或对象名 实例化类后调用即new一次 不同类中...

    C# 静态方法&非静态方法调用总结

    总结的C# 静态方法&非静态方法的调用,有不正确的请指正

    操作 静态方法 非静态方法
    同个类中调用 方法名()
    前面不用加类名或对象名
    实例化类后调用
    即new一次
    不同类中调用 类名.方法名() 实例化类后调用
    即new一次
    //新建一个测试用的类,演示静态方法和非静态方法在同个类中的调用
    class TestClass1
        {
            //新建一个非静态方法
            int add1(int a, int b)
            {
                return a + b;
            }
    
            //新建一个静态方法
            public static int statisub1(int c, int d)
            {
                return c - d; ;
            }
    
            //以下为调用演示
            //以下为新建一个非静态方法用于调用演示,静态方法也同种道理
            void add2(int e, int f)
            {
                //演示静态方法调用静态方法:只需 方法名();
                statisub1(1,2);                      
    
                //演示非静态方法调用非静态方法
                TestClass1 test1 = new TestClass1();   //实例化非静态方法所在的类
                int result1 = test1.add1(3,4);                //通过实例化类来调用
            }
    
    //新建一个测试用的类,演示静态方法和非静态方法在不同类中的调用
        class TestClass1
        {
            //新建一个非静态方法
            public int add1(int a, int b)    //访问修饰符要为 public,不同类才能访问到
            {
                return a + b;
            }
    
            //新建一个静态方法
            public static int statisub1(int c, int d)
            {
                return c - d; ;
            }
        }
        class TestClass2
        {
            //以下为调用演示
            //以下为新建一个非静态方法用于调用演示,静态方法也同种道理
            void add2(int e, int f)
            {
                //演示静态方法调用静态方法:只需 类名.方法名();
                TestClass1.statisub1(1, 2);
    
                //演示非静态方法调用非静态方法
                TestClass1 test1 = new TestClass1();   //实例化非静态方法所在的类
                int result1 = test1.add1(3,4);         //通过实例化类来调用
            }
        }
    
    展开全文
  • C#静态方法与非静态方法

    千次阅读 2013-03-22 22:19:22
    C#静态方法与非静态方法 C#的类中可以包含两种方法:静态方法和非静态方法。 使用了static 修饰符的方法为静态方法,反之则是非静态方法。 静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例,而是...

    C#静态方法与非静态方法

    C#的类中可以包含两种方法:静态方法和非静态方法。

    使用了static 修饰符的方法为静态方法,反之则是非静态方法。

    静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要首先创建一个类的实例,而是采用类名.静态方法的格式 。


    1)static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用。

    static内部只能出现static变量和其他static方法,而且static方法中还不能使用this等关键字,因为它是属于整个类。
    2)静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

    3)静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
    4)那么在程序中什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据,比如连接字符串,配置信息等,当满足上面所说的两点时,进行一次读取,以后就可以方便的使用了,同时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。
    静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员。因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员。公用的处理函数,使用静态方法应该没有问题,牵涉到数据共享,静态变量的函数要多考虑,静态变量要小心使用。

    静态方法:
    原理就是共享代码段;
    共享代码段不会产生任何问题;
    因为代码段都是给CPU作为"读取"用的,除非你进行恶意"修改"运行时的代码段;
    所以静态方法是可以放心使用的;

    静态变量:
    原理就是共享数据段;
    只要没有进行"写入"操作就不会产生问题,但是数据通常都是用于读和写,所以静态变量要注意使用;

    下面是一个使用静态方法的简单例子:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int i = MyClass.Add(7, 11);   //调用静态方法
                Console.WriteLine(i);
                Console.ReadKey();
            }
    
    
        }
        class MyClass
        {
    
            public static int Add(int x, int y)
            {
                return x + y;
            }
        }
    }
    
    输出结果:18
    展开全文
  • c#静态方法和非静态方法区别

    千次阅读 2014-07-07 15:13:54
    c#静态方法和非静态方法区别
  • C#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的定义有什么不同呢?他们在使用上会有什么不同呢?让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。 下面...
  • C#静态方法与非静态方法的区别不仅仅是概念上的,那么他们有什么具体的区别呢?让我们通过本文向你做一下解析。 C#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的定义有什么不同呢?他们在使用上会有...
  • C#静态方法和非静态方法

    千次阅读 2017-08-06 22:34:55
    简单说一下静态方法和非静态方法。 类里面可以包含有静态方法和非静态方法静态方法用static关键字修饰。 public class OneClass { public static void Method1() { } public void Method2() { } } ...
  • C#的类中可以包含两种方法:C#静态方法与非静态方法。那么他们的定义有什么不同呢?他们在使用上会有什么不同呢?让我们来看看最直观的差别:使用了static 修饰符的方法为静态方法,反之则是非静态方法。下面我们分...
  • c#静态方法与非静态方法的区别

    千次阅读 2018-06-18 17:08:26
    一.c#静态成员与非静态成员 1.静态成员属于类所有,被类的所有对象所共享,非静态成员属于类的实例所有。 2.静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例,类的静态成员在内存中只占同一块...
  • C# 静态方法与动态方法

    千次阅读 2017-03-02 11:16:25
    类的实例化可以调用非静态方法 但是静态的方法必须由类直接调用 class Te{ public static void S() {} } class program(){ public static void main(string args[])Te t=new Te() t.s//错误 Te.s//正确}
  • lua调用C#静态方法和非静态方法

    千次阅读 2019-07-04 17:10:14
    调用静态方法(用".") local ClassOne = CS.UnityEngine.ClassOne ClassOne.FunctionOne() 调用非静态方法(用":") local ClassTwo = CS.UnityEngine.ClassTwo() ClassTwo:FunctionTwo()
  • C#静态方法和实例方法

    千次阅读 2018-10-13 16:40:44
    1.静态方法: 用修饰符static声明的方法; 注意:(1)不管用类创没创建对象,类的静态方法都可以使用;  (2)静态方法只能使用该静态方法所在类的静态数据成员和静态方法。 使用格式: 类名.静态方法名; 2...
  • C# 静态方法和实例方法

    千次阅读 2017-10-26 10:55:37
    静态方法 & 实例方法 静态成员:静态成员变量和静态方法。public class MyClass { // 定义类的静态成员变量 public int number; // 定义类的实例成员变量 public static string owner; // 定义类的静态方法 ...
  • C#的类中可以包含两种方法:静态方法和非静态方法。 使用了static 修饰符的方法为静态方法,反之则是非静态方法静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态...
  • 一般情况下Sta()是不能调用NoSta()的,但是可以通过增加一个静态成员来调用。 class B { private static B instance=new B(); public static void Sta()//静态 { instance.NoSta();//正确 } public void ...
  • C# 静态方法调用非静态方法

    千次阅读 2016-08-31 20:38:00
    静态方法是无法直接调用非静态方法的,可以通过对象的引用来调用非静态方法静态方法存储在内存中,而非静态方法是由对象的实例化来创建的,所以要通过对象的引用在静态方法中调用非静态方法,非静态方法是与对象...
  • 一般情况F()不能调用G(),但是你可以增加一个静态成员class A{private static A instance=new A();public static void F()//静态{instance.G();//正确}public void G()//非静态{}} 转载于:...
  • C#静态方法的使用

    千次阅读 2016-04-20 16:45:26
    1 静态方法内部不可调用非静态成员函数 2 静态方法内部可以调用XX对象的非静态方法 3待补充 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cash { ...
  • 话说C#静态方法

    千次阅读 2013-04-05 14:36:22
    查看了MSDN和CLR via C#资料总结如下: MSDN:静态方法可以被重载而不能被重写。静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量(除非在方法参数中显式传递)。对静态方法...
  • 使用Static修饰符修饰的方法是静态方法,
  • c# 静态方法线程安全问题

    千次阅读 2019-03-15 00:55:50
    在多线程中使用静态方法是否有线程安全问题 类的成员分为两类,静态成员(static member)和实例成员(instance member)。静态成员属于类,实例成员则属于对象,即类的实例。 简单讨论一下在一个类中使用静态字段...
  • c#静态方法或者变量的调用

    千次阅读 2017-10-30 21:28:40
    1、如果你的方法或者对象是静态也就是说static则为全局变量,引用时直接类名+方法名//区别在于普通类需要实例化才可以应用类里的方法的变量 public class VideoView1 : MonoBehaviour { public static string aa;//...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,782
精华内容 61,512
关键字:

c#静态方法

c# 订阅