Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 帮助我理解如何在OOP C中使用类_C#_Oop - Fatal编程技术网

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

C# 帮助我理解如何在OOP C中使用类,c#,oop,C#,Oop,我正在创建一个应用程序,基本上可以从不同的位置下载和上传文件。我在这里征求了一些建议,他们告诉我应该采取面向对象的方法来处理类似的事情,但这是我第一次真正使用OOP,所以我很难理解如何实现我想要的。以下是我到目前为止的情况: public class FileListClass { public string sourcetype; public string source; public string destination;

我正在创建一个应用程序,基本上可以从不同的位置下载和上传文件。我在这里征求了一些建议,他们告诉我应该采取面向对象的方法来处理类似的事情,但这是我第一次真正使用OOP,所以我很难理解如何实现我想要的。以下是我到目前为止的情况:

public class FileListClass
    {
        public string sourcetype;
        public string source;
        public string destination;
        public string destinationtype;
        public bool deleteSource;
    }
我如何在main方法中将文件输入到这里?当我基于此类创建新列表时,.添加到列表中需要一个“FileListClass”类型的项-我如何创建它?

简短回答:

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

yourList.Add(new FileListClass
             {
                 sourcetype = "...",
                 source = "...",
                 ...
             });
详细回答:

以上内容应该有效,但请注意,您的类并不是特别设计良好的IMHO。它更像是一个简单的数据记录/容器,而不是一个符合OO原则的类。这可能很好,取决于您的要求

在C中直接公开字段是不常见的。通常,只公开属性:公共字符串SourceType{get;set;}

sourcetype和destinationtype有点可疑——在这种情况下,子类化类继承可能在以后适用。即使没有这些,我也不知道在这两个字段中究竟要存储什么,您是否考虑过对它们使用枚举而不是普通字符串

在C语言中,通常的做法是用大写字母命名公共成员

简短答复:

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

yourList.Add(new FileListClass
             {
                 sourcetype = "...",
                 source = "...",
                 ...
             });
详细回答:

以上内容应该有效,但请注意,您的类并不是特别设计良好的IMHO。它更像是一个简单的数据记录/容器,而不是一个符合OO原则的类。这可能很好,取决于您的要求

在C中直接公开字段是不常见的。通常,只公开属性:公共字符串SourceType{get;set;}

sourcetype和destinationtype有点可疑——在这种情况下,子类化类继承可能在以后适用。即使没有这些,我也不知道在这两个字段中究竟要存储什么,您是否考虑过对它们使用枚举而不是普通字符串

在C语言中,通常的做法是用大写字母命名公共成员


你可以这样做

FileListClass oFileListClass = new  FileListClass();
oFileListClass.sourcetype="";
oFileListClass.source="";
oFileListClass.destination="";
oFileListClass.destinationtype="";
oFileListClass.deleteSource=false;
这将创建一个对象,您可以使用不同的值创建尽可能多的对象

如果您想将其保存在列表中,则创建FileListClass类型的列表,如

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

你可以这样做

FileListClass oFileListClass = new  FileListClass();
oFileListClass.sourcetype="";
oFileListClass.source="";
oFileListClass.destination="";
oFileListClass.destinationtype="";
oFileListClass.deleteSource=false;
这将创建一个对象,您可以使用不同的值创建尽可能多的对象

如果您想将其保存在列表中,则创建FileListClass类型的列表,如

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

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

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

然后修改FileLystClass,如下所示

public class FileListClass
{
    public SouceTypes sourceType;
    ...
    public DestinationTypes destinationType;
    ...
}
然后,回答你的问题

您已经定义了一个名为FileListClass的classa类型。 要使用它,只需创建任意数量的实例,根据源填充对象的字段

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

         myList.add(flo);
     }
}

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

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

然后修改FileLystClass,如下所示

public class FileListClass
{
    public SouceTypes sourceType;
    ...
    public DestinationTypes destinationType;
    ...
}
然后,回答你的问题

您已经定义了一个名为FileListClass的classa类型。 要使用它,只需创建任意数量的实例,根据源填充对象的字段

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

         myList.add(flo);
     }
}

我建议您列出计划中需要采取的基本行动:

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的第一种方法。在程序中使用对象的结构有很多优点,但是很难解释。试着阅读谷歌的相关文章:。

我建议你列出你的程序中需要的基本动作:

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的第一种方法。在程序中使用对象的结构有很多优点,但是很难解释。尝试阅读谷歌关于它的信息: