2010-11-15 61 views
1

我正在創建一個基本上可以從各種類型的位置下載和上傳文件的應用程序。我在這裏問了一些建議,我被告知應該採用面向對象的方法,但這是我第一次使用OOP,所以我很難理解如何實現我想要的。這是我到目前爲止:幫我理解如何在OOP中使用一個類C#

public class FileListClass 
    { 
     public string sourcetype; 
     public string source; 
     public string destination; 
     public string destinationtype; 
     public bool deleteSource; 
    } 

我怎麼實際上在我的主要方法中輸入文件到這裏?當我根據這個類創建一個新列表時,.Add列表中需要一個'FileListClass'類型的項 - 我該如何創建它?

回答

2

你可以做一些事情LIK ethis

FileListClass oFileListClass = new FileListClass(); 
oFileListClass.sourcetype=""; 
oFileListClass.source=""; 
oFileListClass.destination=""; 
oFileListClass.destinationtype=""; 
oFileListClass.deleteSource=false; 

這將創建一個對象,你可以創建儘可能多的像這樣用不同勢值。

如果你瓦納記住這名單,然後創建一個類型FileListClass的名單像

List<FileListClass > oListFileListClass = new List<FileListClass >(); 

然後加上你所有的物體在這個喜歡

oListFileListClass.Add(oFileListClass); 
2

簡短的回答:

var yourList = new System.Collections.Generic.List<FileListClass>(); 

yourList.Add(new FileListClass 
      { 
       sourcetype = "...", 
       source = "...", 
       ... 
      }); 

較長的答案:

以上應該工作,但請記住你的類不是特別精心設計的(恕我直言)它更像是一個簡單的數據記錄/容器,而不是OO原則的「真實」類。這可能會很好,這取決於您的要求。

  • 直接在C#中暴露字段的情況並不常見。通常而言,只有暴露:
    public string SourceType { get; set; }

  • sourcetypedestinationtype略有犯罪嫌疑人 - 這可能是其中的子類(類繼承)可能適合以後的情況。即使沒有這些,也沒有我知道你準備在這兩個領域儲存什麼,你是否考慮過使用enum而不是普通的string

  • 在C#中,通常使用CamelCase的大寫字母來命名公共成員。

1

首先,這是一個bettere方法來定義枚舉爲你的常數類型,像

public enum SourceTypes 
{ 
    Network = 0, 
    WAN =1, 
} 

ecc。 ECC。

然後修改FileLystClass如下

public class FileListClass 
{ 
    public SouceTypes sourceType; 
    ... 
    public DestinationTypes destinationType; 
    ... 
} 

然後,回答你的問題。

您已經定義了一個名爲FileListClass的類(一個類型)。 要使用它,只需創建你想盡可能多的情況下,填充物的領域據此來你的源代碼

public void CreateFileListList() 
{ 
    for (int i = 0; i <100; i++) 
    { 
     FileListClass flo = new FileListClass 
     flo.sourceType = SourceTypes.WAN; 
     flo.deletesource = true; 
     [...] 

     myList.add(flo); 
    } 
} 
1

我建議奠定了所需要在你的程序中的基本動作:

DownloadFrom(String loc); 
UploadFrom(String loc); 

然後你就可以建立自己的應用水平較低:

DownloadFrom(String loc); 
    HTTPConnect(); 
    FTPConnect(); 
    etc.. 

UploadFrom(String loc); 
    HTTPConnect(); 
    FTPConnect(); 
    etc.. 

此時你已經可以讓你的程序結構的感覺,你可以在事實上ç reate圍繞你的不同行動的課程:

class Connect { 
    HTTPConnect(); 
    FTPConnect(); 
} 

class Download : Connect{ 
    DownloadFrom(String loc); 
} 

class Upload : Connect{ 
    UploadFrom(String loc); 
} 

正如你所看到的,這是第一種OOP方法。在你的程序周圍使用對象結構有很多好處,但這太難解釋了。嘗試閱讀谷歌有關它:Advantages of OOP