我有2個方法,intMethod和doubleMethod,它們完全一樣,除了intMethod接受一個int數組參數,doubleMethod接受一個雙數組參數。int和double的重載問題
我知道我可以使用重載使用相同的方法名稱,但是,我仍然結束了兩個幾乎相同的方法,只有它們的參數不同。無論如何,我可以將intMethod和doubleMethod結合到一個方法中嗎?
如果是這樣,你能提供一些示例代碼嗎?我可以更好地使用一些示例代碼。感謝
編輯:人們要求我發表我的方法,而且你去:
我有一個相同的方法,readDataDouble,該數據陣列是雙[] []
基本上這個方法讀一個CSV文件並將數據轉換爲int格式。第一行是時間,第一列是日期。
public static void readDataInt(string value, ref int[][] data, ref DateTime[] timeframe, ref DateTime[] date)
{
string inputFile = "D:\\temp.csv";
string[][] temp = null;
if (File.Exists(inputFile))
{
string[] proRataVolumeFile = File.ReadAllLines(inputFile);
temp = new string[proRataVolumeFile.Length][];
for (int i = 0; i < proRataVolumeFile.Length; i++)
{
temp[i] = proRataVolumeFile[i].Split(',');
}
}
//convert the string to int
date = new DateTime[temp.Length - 1];
timeframe = new DateTime[temp[0].Length - 1];
data = new int[temp.Length - 1][];
for (int i = 1; i < temp.Length; i++)
{
data[i - 1] = new int[temp[i].Length - 1];
for (int j = 1; j < temp[i].Length; j++)
{
if (temp[i][j].Length > 0)
data[i - 1][j - 1] = Convert.ToInt32(temp[i][j]);
}
}
for (int i = 1; i < temp.Length; i++)
{
date[i - 1] = Convert.ToDateTime(temp[i][0]);
}
for (int j = 1; j < temp[0].Length; j++)
{
timeframe[j - 1] = DateTime.Parse(temp[0][j]);
}
}
您是否嘗試過使用泛型? '方法(T [] array)'? –
carlosfigueira
「幾乎相同」!=相同。如果您發佈該方法,這將有所幫助。 –
我們也可以使用一些示例代碼更好地遵循:)如果知道正在處理的內容,可以添加方法,因爲「重構」要容易得多。 –