2017-07-23 28 views
-4

我有這個C#類從DriveInfo類的數據發送到我的窗口形式:類具有相同的代碼和發送數據

using System; 

public class FileSystemInfo 
{ 

    public string CheckTotalFreeSpace() 
    { 

     System.IO.DriveInfo DInfo = new System.IO.DriveInfo(@"C:\"); 
     return DInfo.TotalFreeSpace.ToString(); 
    } 

    public string CheckVolumeLabel() 
    { 
     System.IO.DriveInfo DInfo = new System.IO.DriveInfo(@"C:\"); 
     return DInfo.VolumeLabel.ToString(); 
    } 
} 

我想從一個類發送大量的數據(見我的例子)到我的表單類(也許標籤或列表框控件),通過使用一個很好的方式來解決這個問題。此外,我不希望把這行代碼放到單獨的C#類方法:

System.IO.DriveInfo DInfo 

對我來說,基本問題是:交易和展示我的計算機的許多信息,所以我需要把所有這些信息到一個結構或其他東西。

+2

*「我想這個數據發送到另一種方式,而無需使用兩次相同的代碼」 * - 這是完全不清楚。請嘗試更好地闡述你的問題。 –

+0

VolumeLabel已經是一個字符串,所以很多這是沒有意義的。 –

回答

1

您可以使用Lazy類:

using System.IO; 

public class FileSystemInfo 
{ 
    private readonly Lazy<DriveInfo> dInfo = 
     new Lazy<DriveInfo>(() => new DriveInfo(@"C:\")); 

    public string CheckTotalFreeSpace() 
    { 
     return dInfo.Value.TotalFreeSpace.ToString(); 
    } 

    public string CheckVolumeLabel() 
    { 
     return dInfo.Value.VolumeLabel.ToString(); 
    } 
} 
+0

對我的例子來說是一個很好的答案,但我需要一些東西來發送巨大的數據結構/ –

相關問題