C# is an object-oriented programming language developed by Microsoft as part of their .NET initiative. It was designed to provide a balance of C++ with rapid development, Visual Basic, Delphi, and Java.
C# is, in some sense, the programming language which most directly reflects the underlying .NET Framework on which all .NET programs run, and it depends strongly on this framework; there is no such thing as an unmanaged C# program. Its primitive datatypes are objects of the corresponding .NET types, it is garbage-collected, and many of its abstractions, such as its classes, interfaces, delegates, exceptions, and so on, expose explicit features of the .NET runtime.
Compared to C and C++, the language is restricted or enhanced in a number of ways, including but not limited to the following:
Although C# is often considered similar to Java, there are also a number of notable differences with this language as well, including the following:
C# is a ECMA and ISO standardized language. There are currently a number of C# implementations. More information can be found here.
C# has only been used for a few roguelikes so far:
The site Evil Science contains a small section containing C# code samples for basic Roguelike concepts.
SunshineConsole is a simple, portable, beginner-friendly library for ASCII display (using OpenGL) and input. (Other things like Field-of-View are beyond its scope.) It’s built on top of OpenTK.
The Doryen Library (libtcod) is a library that provides a full console emulator, field of view, configuration file parsing, random number generation, and other things useful for a Roguelike, and has bindings for C#. It works under .NET and Mono. However, a download is only provided for a slightly older version of libtcod (1.5.1b) at the moment, and the documentation does not have complete examples for C#. (Also it may not work on OSX with Mono?)
Sharplike is an open source roguelike library written in C# for the .NET Framework and Mono Framework.
SadConsole is .NET library that can run on MonoGame or SFML. It provides an tile-rendering engine suitable for roguelike, text adventure, or console games. It also provides a text-based GUI.
RogueSharp is a free library written in C# which provides many utility functions to help speed up Roguelike development by dealing with map generation, field-of-view calculations, path finding, random number generation, goal maps and more. It doesn’t handle display or IO.
RLNET is a open-source C# library for ascii and tile graphics and input.
RenderLike is an open-source C# library for emulating a terminal via OpenGL using MonoGame.
InfiniMap is a chunked-map library designed for large streaming worlds, supporting 2D and 3D environments.
GoRogue is a .NET Standard library written in C#, which provides numerous data structures an algorithms for common functionality, including field of view, sense mapping, map generation, random number generation, dice notation parsing, and more. It does not handle display.
The RogueSDL library is designed to work with C#, via .NET and Mono, to provide developers with an easy-to-use, quickly implemented graphics and input system for a Roguelike. RogueSDL has been deprecated in favor of libtcod-net.