首页 >web前端 >js教程 >C# 基础:从 javascript 开发人员的角度来看

C# 基础:从 javascript 开发人员的角度来看

Patricia Arquette
Patricia Arquette原创
2024-09-22 16:30:04629浏览

C# Basic: From a javascript developer perspective

作为一名初级开发人员,我一直害怕学习主要使用 OOP 范式的“旧”编程语言。然而,今天我决定忍住,至少尝试一下。它并不像我想象的那么糟糕,它与 Javascript 有相似之处。让我们先了解一下基础知识。

本博客假设您了解 javascript


基本的

数据类型

与动态类型语言 javascript 不同,C# 是静态类型语言:变量的数据类型在编译时就已知,这意味着程序员必须在变量使用时指定变量的数据类型。声明。

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;

列表/数组

注意:如果使用方法1和2,则无法添加或延长长度
声明和分配List方法1

string[] myGroceryArray = new string[2]; // 2 is the length
myGroceryArray[0] = "Guacamole";

声明和分配List方法2

string[] mySecondGroceryArray = { "Apples", "Eggs" };

声明和分配List方法3

List<string> myGroceryList = new List<string>() { "Milk", "Cheese" };
Console.WriteLine(myGroceryList[0]); //"Milk"
myGroceryList.Add("Oranges"); //Push new item to array

声明和分配多维列表

“,”的数量将决定尺寸

string[,] myTwoDimensionalArray = new string[,] {
    { "Apples", "Eggs" },
    { "Milk", "Cheese" }
};

IEnumerable/数组

专门用于枚举或循环的数组。

你可能会问,“和列表有什么区别?”。答案是:

IEnumerable 和 List 之间的一个重要区别(除了一个是接口,另一个是具体类)是 IEnumerable 是只读的,而 List 不是。

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]);

运营商

C# 中的运算符的行为与 javascript 非常相似,所以我不会在这里描述它

条件句

//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;
}

循环

?使用 foreach 会比常规 for 循环快得多

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# 首先是一种面向 OOP 的语言。

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 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; } = "";
    };
}

从 C# 10 开始,我们也可以这样声明命名空间

namespace SampleNamespace;

class AnotherSampleClass
{
    public void AnotherSampleMethod()
    {
        System.Console.WriteLine(
            "SampleMethod inside SampleNamespace");
    }
}

导入命名空间

using HelloWorld.Models;

以上是C# 基础:从 javascript 开发人员的角度来看的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn