Это - своего рода философский вопрос (на который, возможно, только Microsoft может действительно ответить), так как это делает точно, что говорит документация.
, "Если path2 содержит полный путь, этот метод, возвращает path2".
Вот фактический метод Объединения из источника.NET. Вы видите, что это звонит CombineNoChecks, который тогда звонит IsPathRooted на path2 и возвратах, которые соединяют каналом раз так:
public static String Combine(String path1, String path2) {
if (path1==null || path2==null)
throw new ArgumentNullException((path1==null) ? "path1" : "path2");
Contract.EndContractBlock();
CheckInvalidPathChars(path1);
CheckInvalidPathChars(path2);
return CombineNoChecks(path1, path2);
}
internal static string CombineNoChecks(string path1, string path2)
{
if (path2.Length == 0)
return path1;
if (path1.Length == 0)
return path2;
if (IsPathRooted(path2))
return path2;
char ch = path1[path1.Length - 1];
if (ch != DirectorySeparatorChar && ch != AltDirectorySeparatorChar &&
ch != VolumeSeparatorChar)
return path1 + DirectorySeparatorCharAsString + path2;
return path1 + path2;
}
я не знаю, каково объяснение. Я предполагаю, что решение состоит в том, чтобы снять изоляцию (или Trim) с DirectorySeparatorChar с начала второго пути; возможно, запишите свой собственный метод Объединения, который делает это и затем называет Путь. Объединение ().
protected void btnWhateverClick(object sender, EventArgs e)
{
myGridView.DataSourceID = String.Empty;
myGridView.DataSource = new int[0];
myGridView.DataBind();
}
и все готово.
Для Ref DataSource в gridview