安装 C# 的编译器(学JAVA的可以了解原理,初学者可以跳过)
csc.exe 是 C# 的编译器,直接用 VisualStudio 用 .NET 先 build 后 run 心里总是不踏实,学习 C# 难道不应该是循序渐进的嘛
第一步:安装.Net Framework
别着急,你电脑里边可能就有 .Net Framework 这玩意
- 搜索 Windows10 控制面板
- 点击程序和功能
- 勾选
- 看看文件夹是不是有这个应用程序
- 把这个加入到全局变量中(和 JAVA JDK 全局变量一样)
Hello Word
打开我们的VSCode编辑器,我选择的是VSCode,可以直接用文本编辑。
创建一个文件Day2.cs
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
DOS窗口运行:
csc .\Day2.cs
出现
源文件中出现一个 exe 文件
运行这个exe文件,OK你的 Hello World 就运行成功了。
创建控制台项目(学习时候适用)
命令行方式创建:
1. 创建项目:创建文件夹作为你的项目,在终端中运行以下命令初始化一个新的C#项目
dotnet new console
2、编译和运行
dotnet build
dotnet run
3、Program.cs
这个文件就是你要编写的代码。
VisualStudio创建项目
一个解决方案可以有多个项目(同一套环境可以创建多个项目)
项目上右键生成就可直接编译(也就是 dotnet build ),下图为编译好的项目
dll文件和exe文件都是编译好的类和程序,dll文件和exe文件的区别就是exe有main的主入口,dll没有。json不用多说了吧,配置啥的。
大概原理就是这样,想要在细致的了解,建议直接看官方文档。
语法
总体来看和JAVA的差别不大
结构体
//引用System命名空间
using System;
//声明命名空间 一个命名空间可以包含多个类
namespace HelloWorld
{
//声明一个类
class Program
{
//main方法是C#程序的切入点
static void Main(string[] args)
{
//打印语句
System.Console.WriteLine("Hello World nihao");
}
}
}
基本数据类型
自己理解 : java中式存储在栈的方法区的常量池中,C#差不多,也就是存储在栈中的的数据。
就是凡是struct、enum 类型的都是值类型。
以下类型为比较常用的类型,源码都是 struct 类型
// 声明 char 初始值为null
char? char1;
// 声明 char 初始值为'\0'
char char2;
// 声明 char 初始值为'a'
char char3 = 'a';
// 声明 byte 初始值为null
byte? byte1;
// 声明 byte 初始值为0
byte byte2;
// 声明 byte 初始值为1
byte byte3 = 1;
// 声明 short 初始值为null
short? short1;
// 声明 short 初始值为0
short short2;
// 声明 short 初始值为1
short short3 = 1;
// 声明 int 初始值为null
int? int1;
// 声明 int 初始值为0
int int2;
// 声明 int 初始值为1(整数默认都是int)
int int3 = 1;
// 声明 long 初始值为null
long? long1;
// 声明 long 初始值为0L
long long2;
// 声明 long 初始值为1L
long long3 = 1L;
// 声明 float 初始值为null
float? float1;
// 声明 float 初始值为0.0F
float float2;
// 声明 float 初始值为1.22F
float float3 = 1.22F;
// 声明 double 初始值为null
double? double1;
// 声明 double 初始值为0.0D
double double2;
// 声明 double 初始值为1.33 (小数默认都是double)
double double3 = 1.333D;
// 声明 decimal 初始值null
decimal? decimal1;
// 声明 decimal 初始值0.0M
decimal decimal2;
// 声明 decimal 初始值1.1M
decimal decimal3 = 1.1M;
// 声明 bool 初始值为null
bool? bool1;
// 声明 bool 初始值为false
bool bool2;
// 声明 bool 初始值为true
bool bool3 = true;·
// 很意外的一个DateTime
// java是引用数据类型 .net是值数据类型
// 这个在网上了解了一下 是C#的优化,而且比java的性能提高很多。
DateTime y = DateTime.Now;
引用数据类型
顾名思义,凡是存储在堆中,需要程序指向引用的都是引用数据类型。
至于什么是堆,引用是什么? 百度
String
// 声明字符串 初始值null
string s1;
// 声明字符串
string s2 = "is le le";
// 插值字符串 $ {}
string s3 = $"my mame {s2}";
Console.WriteLine(s2);// is le le
Console.WriteLine(s3);// my mame is le le
// 插入数字
Console.WriteLine($"这是数字:{500}");//这是数字:500
// 货币
Console.WriteLine($"这是数字:{500:c}");//这是数字:¥500.00
// 默认小数点后保留两位
Console.WriteLine($"这是数字:{3.1415926535:f}");//这是数字: 3.14
// 小数点后保留4位
Console.WriteLine($"这是数字:{3.1415926535:f4}");//这是数字: 3.1416
//转义
string str = @"C:\Windows";
Object
Object o = new Object();
指针
char* c;
觉得作者写的不错的,值得你们借鉴的话,就请点一个免费的赞吧!这个对我来说真的很重要。૮(˶ᵔ ᵕ ᵔ˶)ა