• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MSDN知识库_c#关键字_static

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

       Static 是C#会用到的关键字,可以用来修饰类、字段、方法、属性、运算符、事件和构造函数。今天在多线程中被静态成员不小心被撞了一下,因此将MSDN的内容整理转下来

  一)静态类

    Static修饰的class是静态类,具有以下的特点:

      •     仅包含静态成员。

      •     无法实例化。

      •     是密封的。

      •     不能包含实例构造函数

 

      偷懒附上MS的代码

 

    • public static class TemperatureConverter
      {
          public static double CelsiusToFahrenheit(string temperatureCelsius)
          {
              // Convert argument to double for calculations.
              double celsius = Double.Parse(temperatureCelsius);
      
              // Convert Celsius to Fahrenheit.
              double fahrenheit = (celsius * 9 / 5) + 32;
      
              return fahrenheit;
          }
      
          public static double FahrenheitToCelsius(string temperatureFahrenheit)
          {
              // Convert argument to double for calculations.
              double fahrenheit = Double.Parse(temperatureFahrenheit);
      
              // Convert Fahrenheit to Celsius.
              double celsius = (fahrenheit - 32) * 5 / 9;
      
              return celsius;
          }
      }
      
      class TestTemperatureConverter
      {
          static void Main()
          {
              Console.WriteLine("Please select the convertor direction");
              Console.WriteLine("1. From Celsius to Fahrenheit.");
              Console.WriteLine("2. From Fahrenheit to Celsius.");
              Console.Write(":");
      
              string selection = Console.ReadLine();
              double F, C = 0;
      
              switch (selection)
              {
                  case "1":
                      Console.Write("Please enter the Celsius temperature: ");
                      F = TemperatureConverter.CelsiusToFahrenheit(Console.ReadLine());
                      Console.WriteLine("Temperature in Fahrenheit: {0:F2}", F);
                      break;
      
                  case "2":
                      Console.Write("Please enter the Fahrenheit temperature: ");
                      C = TemperatureConverter.FahrenheitToCelsius(Console.ReadLine());
                      Console.WriteLine("Temperature in Celsius: {0:F2}", C);
                      break;
      
                  default:
                      Console.WriteLine("Please select a convertor.");
                      break;
              }
      
              // Keep the console window open in debug mode.
              Console.WriteLine("Press any key to exit.");
              Console.ReadKey();
          }
      }

      二)静态成员

 

{
    public static int NumberOfWheels = 4;
    public static int SizeOfGasTank
    {
        get
        {
            return 15;
        }
    }
    public static void Drive() { }
    public static event EventType RunOutOfGas;

    // Other non-static fields and properties...
}
访问示例:
Automobile.Drive();
int i = Automobile.NumberOfWheels; (const关键字修饰的成员本质上是静态的 ,也用这种方式调用)

      静态方法可以被重载但不能被重写,因为它们属于类,不属于类的任何实例。

  三)静态构造函数

    在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。静态构造函数具有以下的特点:

    •   静态构造函数既没有访问修饰符,也没有参数。

    • 类。

    •   无法直接调用静态构造函数。

    •   在程序中,用户无法控制何时执行静态构造函数。

    •   静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。

    •   静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。

    •   如果静态构造函数引发异常,运行时将不会再次调用该构造函数,并且在程序运行所在的应用程序域的生存期内,类型将保持未初始化。

  引用地址:

               https://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx;

      https://msdn.microsoft.com/zh-cn/library/79b3xss3.aspx;

      https://msdn.microsoft.com/zh-cn/library/k9x6w0hc.aspx;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#WinformDirectX视频播放器发布时间:2022-07-14
下一篇:
C/C++中无条件花括号的妙用发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap