關于建構式,以下內容是我已經知道的:
public partial class Form1 : Form
{
public Form1() //默認構造引數
{
InitializeComponent();
}
public Form1(string filePath) : this() //帶全路徑建構式
{
File.Open(filePath, FileMode.Open);
}
public Form1(string filePath, string[] Para) : this() //需合成路徑建構式
{
string FilePath = Path.Combine(filePath, string.Join(",", Para));
File.Create(FilePath);
File.Open(FilePath, FileMode.Open);
}
}
上面內容是沒問題的,但不夠簡潔,為了代碼能夠重復使用,我想達到的目標是在第三個建構式中參考第二個建構式,類似于下面的代碼
public Form1(string filePath, string[] Para) : this() //需合成路徑建構式
{
string FilePath = Path.Combine(filePath, string.Join(",", Para));
File.Create(FilePath);
Form1(FilePath); //這句明顯不對,求實作本功能的代碼
//this(FilePath),這句也不對!
}
請問高手如何實作,File.Open()代表一個很多代碼的程序
uj5u.com熱心網友回復:
public Form1(string filePath, string[] Para) : this(filePath) //需合成路徑建構式{
string FilePath = Path.Combine(filePath, string.Join(",", Para));
File.Create(FilePath);
File.Open(FilePath, FileMode.Open);
}
uj5u.com熱心網友回復:
多載的建構式可以相互呼叫啊public Form1(string filePath) : this(string xx, string xx)
uj5u.com熱心網友回復:
public partial class Form1 : Form
{
public Form1() //默認構造引數
{
InitializeComponent();
}
public Form1(string filePath) : this(filePath, null) //帶全路徑建構式
{
}
public Form1(string filePath, string[] Para) : this() //需合成路徑建構式
{
if (Para != null)
{
filePath = Path.Combine(filePath, string.Join(",", Para));
}
File.Create(filePath);
File.Open(filePath, FileMode.Open);
}
}
uj5u.com熱心網友回復:
我是想用 Form1(string filePath, string[] Para) 創建建構式呀;
在Form1(string filePath, string[] Para) 內部呼叫 Form1(string filePath)
uj5u.com熱心網友回復:
public Form1(string filePath, string[] Para) : this(filePath) //需合成路徑建構式{
string FilePath = Path.Combine(filePath, string.Join(",", Para));
File.Create(FilePath);
}
uj5u.com熱心網友回復:
挺簡潔了。不要把時間和精力放在這個上面。uj5u.com熱心網友回復:
public Form1(string filePath, string[] Para) :
this(((Func<string>)(() => {
string FilePath = Path.Combine(filePath, string.Join(",", Para));
File.Create(FilePath);
return FilePath;
}))()) { }
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/3699.html
標籤:C#
