C# 帮助我理解如何在OOP C中使用类
我正在创建一个应用程序,基本上可以从不同的位置下载和上传文件。我在这里征求了一些建议,他们告诉我应该采取面向对象的方法来处理类似的事情,但这是我第一次真正使用OOP,所以我很难理解如何实现我想要的。以下是我到目前为止的情况:C# 帮助我理解如何在OOP C中使用类,c#,oop,C#,Oop,我正在创建一个应用程序,基本上可以从不同的位置下载和上传文件。我在这里征求了一些建议,他们告诉我应该采取面向对象的方法来处理类似的事情,但这是我第一次真正使用OOP,所以我很难理解如何实现我想要的。以下是我到目前为止的情况: public class FileListClass { public string sourcetype; public string source; public string destination;
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的第一种方法。在程序中使用对象的结构有很多优点,但是很难解释。尝试阅读谷歌关于它的信息: