Rust Wiki

Revision Difference

CSharp_Basics#526555

<cat>Dev</cat>⤶ <title>CSharp Basics</title>⤶ ⤶ It can be pretty intimidating to look at C\# code and see a bunch of random symbols and words. Hopefully this page will explain some of the words and what the represent so that ⤶ ⤶ ⤶ #Comments⤶ ⤶ **What is all that green text scattered around?**⤶ ⤶ Comments are not counted as code and exist purely to explain the purpose or function of code around it.⤶ ⤶ Comments are often written directly above the code they explain, so look right below the green text comments to see what they are explaining.⤶ ⤶ They are written by putting two backslashes `//` at the start of a line. Anything after those `//` will be treated as comments and ignored by the compiler.⤶ ⤶ #Compiler⤶ ⤶ **Hang on, what the heck is a compiler?**⤶ ⤶ A compiler simply takes your code (a text file) and turns it into an executable program that can run on computers. ⤶ ⤶ For modding Rust there is a special compiler that can take your code, compile it into a program and run it on the fly without needing to restart or pause the server.⤶ ⤶ # Functions⤶ ⤶ **In CSharp they are called 'methods'**⤶ ⤶ A function is simply a grouping of code that will be ran line by line.⤶ ⤶ Can be executed by writing the name of the function with two parenthesis `()` after it.⤶ ⤶ ```csharp⤶ ⤶ void MyFunction()⤶ {⤶ //Here is a comment!⤶ ⤶ Console.WriteLine( "This will be printed in the server console as text!" );⤶ }⤶ ⤶ //Some hook that will be ran by the modding framework⤶ void Hook()⤶ {⤶ //This will call the function 'MyFunction' above⤶ ⤶ MyFunction();⤶ }⤶ ⤶ ```⤶ ⤶ ⤶ For the examples below, the function `Hook()` represents the function that will be ran by the modding framework at some point.⤶ ⤶ #What Is Void⤶ ⤶ **Now all I see is void before every function!**⤶ ⤶ In CSharp `void` means nothing.⤶ ⤶ Every function in C# has to return some kind of data. This leads us to a problem: sometimes we don't need any data back from it, as per the example above.⤶ ⤶ That's where `void` comes in: we put the word in front of the function to tell it we want nothing returned.⤶ ⤶ It is a little backwards to think about but makes sense if you think of void as `return nothing`.⤶ ⤶ But what if we actually want to return data...⤶ ⤶ #Return Types⤶ ⤶ Let's say we want to add together some numbers and return the result.⤶ ⤶ In this case, we will put `int` in front of the function (meaning a whole number from -2 Billion -> +2 Billion).⤶ ⤶ This will tell the compiler that we want to return a number after our function runs.⤶ ⤶ ```csharp⤶ ⤶ int AddTogetherNumbers()⤶ {⤶ //This will return a 2⤶ ⤶ return 1 + 1;⤶ }⤶ ⤶ void Hook()⤶ {⤶ int result = AddTogetherNumbers();⤶ ⤶ //We have ran the above code and stored the number returned inside a variable called 'result'⤶ ⤶ //Now lets print off the result⤶ ⤶ Console.WriteLine( result );⤶ }⤶ ⤶ ⤶ ``` ⤶ ⤶ # Parameters⤶ ⤶ *Can also be referenced as arguments*⤶ ⤶ Parameters are data or options passed into the parameter.⤶ ⤶ Lets say we want to make a function to count the amount of letters in a player's name⤶ ⤶ ```csharp⤶ ⤶ int CountPlayerName( BasePlayer player )⤶ {⤶ //Get's the player's display name and returns the length of the text as an integer number⤶ ⤶ return player.displayName.Length;⤶ }⤶ ⤶ ⤶ ⤶ ```⤶ ⤶ ⤶ #Null⤶ ⤶ Represents 'Nothing'.