是否有任何方法使一个方法具有多个实例

本文关键字:方法 一个 实例 任何 是否 | 更新日期: 2023-09-27 18:10:29

private void Extractions(string htmlFileName, int offLineFileNumber, bool onlineOffline)
        {
            if (onlineOffline == false)
            {
                OffLineDownload.offhtmlfiles();
                page = OffLineDownload.OffLineFiles[offLineFileNumber];
                byte[] bytes1 = File.ReadAllBytes(page);
                page = Encoding.GetEncoding(1255).GetString(bytes1);
                TextExtractor.GetDateTimeList(page);
                StreamWriter w = new StreamWriter(@"C:'Temp'" + htmlFileName);//@"d:'rotterhtml'rotterscoops.html");
                w.Write(page);
                w.Close();
                extractlinks.Links(@"C:'Temp'" + htmlFileName);
                TextExtractor.ExtractText(@"C:'Temp'" + htmlFileName, newText);
            }
            else
            {
                client.Encoding = System.Text.Encoding.GetEncoding(1255);
                page = client.DownloadString("http://rotter.net/scoopscache.html");
                TextExtractor.GetDateTimeList(page);
                StreamWriter w = new StreamWriter(@"d:'rotterhtml'rotterscoops.html");
                w.Write(page);
                w.Close();
                extractlinks.Links(@"d:'rotterhtml'rotterscoops.html");
                TextExtractor.ExtractText(@"d:'rotterhtml'rotterscoops.html", newText);
            }
        }

如果用户调用该方法,我希望他有两个选项来调用它与所有3个变量:

string htmlFileName, int offLineFileNumber, bool onlineOffline

或者不带变量调用它如果它是()那么它将自动为true

是否有任何方法使一个方法具有多个实例

您可以使用可选参数来实现您想要的:

private void Extractions(string htmlFileName="", int offLineFileNumber=0, bool onlineOffline=true)
{
    // implementation
}

然后你可以用需要的参数来调用你的方法,比如:

Extractions("myfile.txt", 1, true);  // or
Extractions("myfile.txt", 1)        

你可以"重载"这个方法。具有相同的名称和多个参数签名。

private void Extractions()
{
}

因为你的方法是一个"void",我不知道你的意思是"如果它是(),那么它将自动为真。"

除非你的意思是:

private void Extractions(string htmlFileName, int offLineFileNumber)
{
     Extractions(htmlFileName, offLineFileNumber, true);
}

当然,你也可以将offLine参数设为可选参数,并将其默认值设为true。

private void Extractions(string htmlFileName, int offLineFileNumber, bool onlineOffLine = true)
{
     ....
} 

是的,这叫做方法重载。

用不同的参数多次定义你的方法

private void Extractions(string htmlFileName, int offLineFileNumber, bool onlineOffline)
{
  //All your logic here
}

重载的方法:

private void Extractions(string htmlFileName, int offLineFileNumber)
{
// Call the main method, passing true
Extractions(htmlFileName, offLineFileNumber, true);
}

请看这里:http://csharpindepth.com/Articles/General/Overloading.aspx