帮助我了解如何在OOP C中使用类#

时间:2010-11-15 09:03:39

标签: c# oop

我正在创建一个基本上从各种类型的位置下载和上传文件的应用程序。我在这里问了一些建议,我被告知我应该采用这样的方式采用面向对象的方法,但这是我第一次真正使用OOP,所以我很难理解如何实现我想要的东西。以下是我到目前为止的情况:

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

如何在main方法中实际输入文件?当我基于这个类创建一个新列表时,列表中的.Add需要一个'FileListClass'类型的项目 - 如何创建它?

4 个答案:

答案 0 :(得分: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 s?

  • 在C#中,通常的做法是使用CamelCase大写字母命名公共成员。

答案 1 :(得分:2)

你可以做一些喜欢的事情

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

这将创建一个对象,您可以使用不同的值创建尽可能多的对象。

如果您将此保留在List中,则创建类型为FileListClass的列表,如

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

然后在此添加所有对象

oListFileListClass.Add(oFileListClass);

答案 2 :(得分:1)

首先,为常量类型定义枚举是一种更好的方法,例如

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);
     }
}

答案 3 :(得分:1)

我建议您列出计划中需要的基本操作:

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

然后您可以构建较低级别的应用:

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

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

此时您已经对程序的结构有了一种感觉,实际上您可以围绕不同的操作创建类:

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

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

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

正如您所看到的,这是OOP的第一种方法。使用程序周围的对象结构有很多优点但是解释起来太难了。请尝试阅读Google:Advantages of OOP