我已经被很多同事和陌生人告知/反驳,他们强烈主张我,C#是一种严格的Windows平台语言。
我很想听听那些在非Windows平台上从事过C#项目的人,并听取他们正在使用的技术堆栈,以便做到这一点。
答案 0 :(得分:6)
C#本身是一种实际上与平台无关的语言。 .NET Framework的基类库最初是以Windows为中心的(尽管dotGnu和Mono中有开源跨平台)。
今天.NET中仅限Windows的主要内容是:
System.Windows.Forms
:WinForms - Win32和hWnd的包装器)System.Drawing.*
(围绕GDI的包装)Microsoft.Win32
名称空间。还有其他一些内容,例如System.Diagnostics.Process
,它们是围绕Windows环境的假设而设计的(例如Process.Handle
)。
另一个需要解决的问题是第三方库中的错误假设,例如代码总是使用\r\n
代替Environment.Newline
,或代码假设使用了驱动程序字母和反斜杠在路径中。