using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>
的作品。 而在C#中更名類型的類型
using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
不編譯。
在第一行聲明的IdType
不能與進一步using
似乎一起使用。
有沒有辦法解決這個問題?
using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>
的作品。 而在C#中更名類型的類型
using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
不編譯。
在第一行聲明的IdType
不能與進一步using
似乎一起使用。
有沒有辦法解決這個問題?
這將工作:
using IdType = System.Guid;
namespace x
{
using RowType = System.Tuple<IdType, object>;
}
的原因是類型別名只在內部包含它們的命名空間聲明中適用。
using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>;
namespace WindowsFormsApplication1
{
public void Test()
{
var guideq = typeof(IdType).Equals(typeof(System.Guid));
var typeeq=typeof(RowType).Equals(typeof(System.Tuple<System.Guid,
object>));
System.Tuple<System.Guid, object> obj = new RowType(IdType.NewGuid(), "");
}
IdType and System.Guid
是相同類型。
System.Tuple<System.Guid, object>
和RowType
屬於同一類型。在這個 的情況下,它只是作爲一個別名工作。所以我們需要使用任何地方。
在代碼中我檢查這兩種類型的等價性,它是真的;因爲它是相同類型的別名。
此類型重命名(或)類型別名有助於編碼, 可以理解並避免混淆。特別是當類型越來越複雜時。
大寫字母應該謹慎使用 - 一般在句子的開頭和專有名詞。不是每個單詞(或每隔一個單詞) –
爲什麼你要這麼做呢?似乎是一種混淆代碼的好方法! – DavidG
@DavidG在這條路上,我認爲用於ID的類型可能會改變。 –
@DavidG我的代碼看起來不像System.Tuple,object []>'。我試圖擺脫它,我的例子被簡化了。 –
LosManos