In C# we can use a keyword as a identifier by prefixing @ Why? suppose we are using a extern C lib, the library exports a function as "int version()", so we write: extern(C) int version(); this will obviously fail to compile, cos' version is a D keyword, (but not the C keyword.) so we have no methods except modify the C code and re-compile it.