As a Junior developer, i've always been scared of learning 'Old' programming language that primarily uses OOP paradigm. However, today I decided to suck it up and at least try it. It isn't as bad as I think, there's similarities that it carries over to Javascript. Let us go through the basics first.
This blog assumes understanding of javascript
Unlike javascript which is dynamically typed language, C# is statically typed language: The data type of a variable is known at the compile time which means the programmer has to specify the data type of a variable at the time of its declaration.
int: number (32bit) decimal: number (128bit) string: string bool: Boolean list[]: Array dictionary{}: Object
-------------- Declaration ---------------- int myInt = 2147483647; decimal myDecimal = 0.751m; // The m indicates it is a decimal string myString = "Hello World"; // Notice the double-quotes bool myBool = true;
Note: You cannot add or extend the length if you use method 1 & 2
Declaring & assigning List method 1
string[] myGroceryArray = new string[2]; // 2 is the length myGroceryArray[0] = "Guacamole";
Declaring & assigning List method 2
string[] mySecondGroceryArray = { "Apples", "Eggs" };
Declaring & assigning List method 3
List<string> myGroceryList = new List<string>() { "Milk", "Cheese" }; Console.WriteLine(myGroceryList[0]); //"Milk" myGroceryList.Add("Oranges"); //Push new item to array
Declaring & assigning Multi-dimensional List
The number of ',' will determine the dimensions
string[,] myTwoDimensionalArray = new string[,] { { "Apples", "Eggs" }, { "Milk", "Cheese" } };
An array that is specifically used to enumerate or loop through.
You may ask, "What's the difference with list?". The answer is:
One important difference between IEnumerable and List (besides one being an interface and the other being a concrete class) is that IEnumerable is read-only and List is not.
List<string> myGroceryList = new List<string>() { "Milk", "Cheese" }; IEnumerable<string> myGroceryIEnumerable = myGroceryList;
Dictionary<string, string[]> myGroceryDictionary = new Dictionary<string, string[]>(){ {"Dairy", new string[]{"Cheese", "Milk", "Eggs"}} }; Console.WriteLine(myGroceryDictionary["Dairy"][2]);
Operators in C# behaves very similar to javascript so I won't describe it here
//Logic gate //There's no === in C# myInt == mySecondInt myInt != mySecondInt myInt >= mySecondInt myInt > mySecondInt myInt <= mySecondInt myInt < mySecondInt // If Else if () {} else if () {} else () {} // Switch switch (number) { case 1: Console.WriteLine("lala"); break; default: Console.WriteLine("default"); break; }
? Using foreach will be much faster than regular for loop
int[] intArr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int totalValue = 0; for (int i = 0; i < intArr.Length; i++) { totalValue += intArr[i]; } int forEachValue = 0; foreach (int num in intArr) { forEachValue += num; }
C# is first and foremost an OOP oriented language.
namespace HelloWorld { internal class Program { static void Main() { int[] numArr = [1, 2, 3, 4, 5]; int totalSum = GetSum(numArr); } static private int GetSum(int[] numArr) { int totalValue = 0; foreach (var item in numArr) { totalValue += item; } return totalValue; } } }
Namespace is used to organization purpose, typically to organize classes
namespace HelloWorld.Models { public class Computer { public string Motherboard { get; set; } = ""; public int CPUCores { get; set; } public bool HasWIfi { get; set; } public bool HasLTE { get; set; } public DateTime ReleaseDate { get; set; } public decimal Price { get; set; } public string VideoCard { get; set; } = ""; }; }
Starting C# 10, we can also declare namespace as such
namespace SampleNamespace; class AnotherSampleClass { public void AnotherSampleMethod() { System.Console.WriteLine( "SampleMethod inside SampleNamespace"); } }
using HelloWorld.Models;
The above is the detailed content of C# Basic: From a javascript developer perspective. For more information, please follow other related articles on the PHP Chinese website!