using s32 = System.Int32; // 僅當前文件生效
其他文件無法直接使用 s32,需重複聲明。
using alias 是編譯器級別的語法糖,僅在當前源文件(編譯單元)內有效,不會寫入元數據,因此跨文件不可見。
// GlobalUsings.cs (項目根目錄)
global using s32 = System.Int32;
global using u32 = System.UInt32;
編譯器自動應用到項目所有文件。
// SharedAliases.cs
using s32 = System.Int32;
// 其他文件引用
#include "SharedAliases.cs" // 不推薦,C# 不支持 #include
C# 無預處理器,不可行。
Int32/int 已經足夠短,別名反而降低可讀性。C# 無 typedef 需求,因為:
int = Int32)。using 解決命名衝突。[Generator]
public class AliasGenerator : ISourceGenerator {
public void Execute(GeneratorExecutionContext context) {
context.AddSource("GlobalAliases.g.cs", @"
global using s32 = System.Int32;
global using u32 = System.UInt32;
");
}
}
不要濫用 using 別名。C# 設計哲學傾向於顯式、可讀的類型名。若確需縮短,升級 C# 10 使用 global using 統一定義。