xml地图|网站地图|网站标签 [设为首页] [加入收藏]
变量初始化问题,获取本地磁盘信息
分类:编程

 

直接上干货简单易懂


问题:字段初始值设定项无法引用非静态字段、方法或属性的问题

//磁盘监控(远程/本地)
//需要引用System.Management.dll
public class RemoteMonitoring
{
private static string strMsg = "";
private static long freesize = 0, size = 0;
private static long gb = 1024 * 1024 * 1024;//GB,这里可以自己定义获取是MB还是GB

 

下面代码出错的原因,在类中定义的字段为什么不能用? 
public class Test 
{
    public Test()
    {
    }
    public int Age=23;
    public int temp = Age;//ERROR 字段初始值设定项无法引用非静态字段、方法或属性
}

public static string ThreadDisk()
{
strMsg = "";
string strHostName = Dns.GetHostName(); //取得本机的主机名
IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP
string localip = ipEntry.AddressList[0].ToString(); //假设本地主机为单网卡,取得第一个IP
try
{
long minsize = long.Parse(CommonField.minsize);
if (CommonField.ip == localip)
{
#region 本机
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
if (drive.DriveType == DriveType.Fixed)
{
freesize = drive.TotalFreeSpace / gb;
size = drive.TotalSize / gb;
if (freesize <= minsize)
{
strMsg += localip + "磁盘" + drive.Name + "的可用空间为" + freesize + "GB,请及时清理!" + System.Environment.NewLine;
}
strMsg += "磁盘" + drive.Name + "的总空间:" + size + "MB!" + "可用空间:" + freesize + "GB!" + System.Environment.NewLine;
}
}
#endregion
}
return strMsg;
}
catch (Exception ex)
{
strMsg = ex.Message;
}
return strMsg;
}

事件概述

委托是一种类型可以被实例化,而事件可以看作将多播委托进行封装的一个对象成员(简化委托调用列表增加和删除方法)但并非特殊的委托,保护订阅互不影响。

 

 

}

基础事件(event)

在.Net中声明事件使用关键词event,使用也非常简单在委托(delegate)前面加上event:

 1     class Program
 2     {
 3         /// <summary>
 4         /// 定义有参无返回值委托
 5         /// </summary>
 6         /// <param name="i"></param>
 7         public delegate void NoReturnWithParameters();
 8         /// <summary>
 9         /// 定义接受NoReturnWithParameters委托类型的事件
10         /// </summary>
11         static event NoReturnWithParameters NoReturnWithParametersEvent;
12         static void Main(string[] args)
13         {
14             //委托方法1
15             {
16                 Action action = new Action(() =>
17                 {
18                     Console.WriteLine("测试委托方法1成功");
19                 });
20                 NoReturnWithParameters noReturnWithParameters = new NoReturnWithParameters(action);
21                 //事件订阅委托
22                 NoReturnWithParametersEvent += noReturnWithParameters;
23                 //事件取阅委托
24                 NoReturnWithParametersEvent -= noReturnWithParameters;
25             }
26             //委托方法2
27             {
28                 //事件订阅委托
29                 NoReturnWithParametersEvent += new NoReturnWithParameters(() =>
30                 {
31                     Console.WriteLine("测试委托方法2成功");
32                 });
33             }
34             //委托方法3
35             {
36                 //事件订阅委托
37                 NoReturnWithParametersEvent += new NoReturnWithParameters(() => Console.WriteLine("测试委托方法3成功"));
38             }
39             //执行事件
40             NoReturnWithParametersEvent();
41             Console.ReadKey();
42         }
43         /*
44          * 作者:Jonins
45          * 出处:http://www.cnblogs.com/jonins/
46          */
47     }

上述代码执行结果:

图片 1

 

本文由澳门新葡亰手机版发布于编程,转载请注明出处:变量初始化问题,获取本地磁盘信息

上一篇:中文字符串编译后成乱码,用Python爬取美丽cosp 下一篇:没有了
猜你喜欢
热门排行
精彩图文