活动地址:毕业季·进击的技术er
夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始,优快云诚邀各毕业生/在校生/职场人讲述自己的毕业季故事,分享自己的经验,技术er的进击之路,等你来书写!我是从自身经历出发,分享自己的经验。
从哪个瞬间开始让你决定学习编程语言?
第一次接触编程语言是在 12 岁
那个时候看叔叔在一台赛扬上写 cs 游戏!
现在还有人知道赛扬机吗?我清晰地记得那是台 32 MB 的赛扬机。
话说现在的小孩子们还玩 反恐精英/CS/魔兽/红警 什么的单机游戏吗?
我可是亲眼看着叔叔咔咔咔的敲键盘 然后非常神奇的还能玩!!!
那是我第一次遇见 c#
从此 c# 在我心里打上了一个怎么也抹不去的标签:
就是用来写游戏的!!!
自学过 C、Java 感觉要是写游戏还是 C# 用起来舒服
毕竟控件咔咔点两下就是一个窗口 随便写写功能连上数据库就能跑起来玩……
于是这次打算把 c# 这个冷门语言重新拾起来!应该不难吧 Java 的底子在那儿呢
##################################################
目录
任何一台可以打现代游戏的 Windows 都可以运行 c# 程序
##################################################
.NET 框架
——————————
任何一台可以打现代游戏的 Windows 都可以运行 c# 程序
这不是吹牛
只是有 32 位和 64 位的区别而已
只要系统安装了对应的 .NET 框架 哪怕跑的是 Linux 都可以运行 c#
只不过要对应版本 例如你写的 .Net Framework 4.0 的程序要想运行在 2.0 的 Framework/框架 上是痴心妄想
不支持向下兼容 例如 XP 默认就没带 .net 框架
而 Vista 和 Windows 7 都带了框架 只是版本不同而已
——————————
如何查看 .NET 框架的版本
%%%%%
通过命令提示符
以管理员身份运行 cmd
输入该命令以查看:
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" /s
如果是 4.X 的版本可以使用该命令查看:
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4" /s
示例如下:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Windows\system32>reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP"
/s
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\CDF
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\CDF\v4.0
NetTcpPortSharingInstalled REG_DWORD 0x1
HttpNamespaceReservationInstalled REG_DWORD 0x1
WMIInstalled REG_DWORD 0x1
SMSvcHostPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
NonHttpActivationInstalled REG_DWORD 0x1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\1033
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\2052
Version REG_SZ 4.5.51641
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x5c733
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\1033
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\2052
Version REG_SZ 4.5.51641
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x5c733
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4.0
(默认) REG_SZ deprecated
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4.0\Client
Version REG_SZ 4.0.0.0
Install REG_DWORD 0x1
C:\Windows\system32>reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v
4" /s
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\1033
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Client\2052
Version REG_SZ 4.5.51641
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x5c733
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
InstallPath REG_SZ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\1033
Version REG_SZ 4.8.03761
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x80eb1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full\2052
Version REG_SZ 4.5.51641
CBS REG_DWORD 0x1
TargetVersion REG_SZ 4.0.0
Install REG_DWORD 0x1
Servicing REG_DWORD 0x0
Release REG_DWORD 0x5c733
C:\Windows\system32>
%%%%%
在资源管理器查看产品信息
文件管理器中进入该路径 可以看到 32 位和 64 位的 .net 框架:
C:\Windows\Microsoft.NET\Framework

在 版本目录 中找到 C# 编译器右击选择 属性 查看 详细信息 选项卡中的 产品版本:
这里是 4.8
%%%%%
查看系统安装软件的信息
在 程序和功能 这个界面直接就能找到安装的框架版本:
##################################################
第一个 C# 程序
——————————
cmd 中使用 csc 编译器编译 .cs 源文件
所以说我们不需要安装任何 IDE 就能编写编译 c# 程序
在 C 盘根目录创建一个 .cs 结尾的文件 这是 c# 程序的源文件
然后在其中编写代码:
using System;
class Program
{
static void Main(string[] args)
{ /* 我的第一个 C# 程序! */
Console.WriteLine( "Hello,World!" );
Console.ReadLine();
}
}
保存退出 我这里保存为 hw.cs 文件:
以管理员身份运行 cmd
进入 .NET 安装目录:
cd C:\Windows\Microsoft.NET
进入 64 位的 .NET 框架:
cd Framework64
进入对应版本目录 可以按 TAB 键补全:
cd v4.0.30319
最后找到 csc.exe 编译器 这是 c# 编译器:
C:\Windows\system32>cd C:\Windows\Microsoft.NET
C:\Windows\Microsoft.NET>cd Framework64
C:\Windows\Microsoft.NET\Framework64>cd v4.0.30319
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>dir csc.exe
驱动器 C 中的卷是 System_8.1
卷的序列号是 B6F6-A064
C:\Windows\Microsoft.NET\Framework64\v4.0.30319 的目录
2022/05/15 22:40 2,758,280 csc.exe
1 个文件 2,758,280 字节
0 个目录 6,294,503,424 可用字节
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
开始编译我们编写的 .cs 文件 如下就是编译成功:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>csc C:\hw.cs
Microsoft (R) Visual C# Compiler version 4.8.3761.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only
supports language versions up to C# 5, which is no longer the latest version. Fo
r compilers that support newer versions of the C# programming language, see http
://go.microsoft.com/fwlink/?LinkID=533240
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
csc 是 c# 编译器
C:\hw.cs 是 c 盘下的 .cs 源文件
默认编译到当前目录下也就是
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
cmd 必须是管理员身份不然会出现访问错误:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Users\byme>cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>csc C:\hw.cs
Microsoft (R) Visual C# Compiler version 4.8.3761.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only
supports language versions up to C# 5, which is no longer the latest version. Fo
r compilers that support newer versions of the C# programming language, see http
://go.microsoft.com/fwlink/?LinkID=533240
CSC97CE4F50C8A4D9DA23C52C950AE2F41.TMP: error CS1567: Error generating Win32
resource: 拒绝访问。
warning CS1610: Unable to delete temporary file
'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\CSC97CE4F50C8A4D9DA23C5
2C950AE2F41.TMP' used for default Win32 resource --
系统找不到指定的文件。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
找到编译的程序 输入程序名就可以运行:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>dir hw.exe
驱动器 C 中的卷是 System_8.1
卷的序列号是 B6F6-A064
C:\Windows\Microsoft.NET\Framework64\v4.0.30319 的目录
2022/06/27 17:18 3,584 hw.exe
1 个文件 3,584 字节
0 个目录 6,292,127,744 可用字节
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>hw.exe
Hello,World!
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>hw
Hello,World!
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
也可以在文件管理器中找到编译出来的程序 双击运行:
——————————
为 csc 编译器添加环境变量
一般来说离开了安装目录就找不到编译器了:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>d:
D:\>csc
'csc' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
D:\>
%%%%%
Windows 命令提示符临时设置环境变量
此时使用 set 命令查看一下系统环境变量:
D:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\byme\AppData\Roaming
CLASSPATH=.;D:\Java\jdk1.7.0_79\lib;D:\Java\jdk1.7.0_79\lib\tools.jar
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=LILIAN
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\byme
JAVA_HOME=D:\Java\jdk1.7.0_79
LOCALAPPDATA=C:\Users\byme\AppData\Local
LOGONSERVER=\\LILIAN
MOZ_PLUGIN_PATH=C:\Program Files (x86)\Foxit Software\Foxit PDF Reader\plugins\
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2a07
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\byme\AppData\Local\Temp
TMP=C:\Users\byme\AppData\Local\Temp
USERDOMAIN=lilian
USERDOMAIN_ROAMINGPROFILE=lilian
USERNAME=byme
USERPROFILE=C:\Users\byme
VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\
windir=C:\Windows
D:\>
太多了 单独查看 Path 的值:
D:\>set Path
Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
D:\>
将 csc 所在目录添加进环境变量:
D:\>set path=%path%;C:\Windows\Microsoft.NET\Framework64\v4.0.30319
D:\>set path
Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;;C:\Window
s\Microsoft.NET\Framework64\v4.0.30319
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
D:\>
%%%%%
cmd 命令行中永久设置系统环境变量
命令如下:
setx "path" "%path%;C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
示例:
C:\Users\byme>setx "path" "%path%;C:\Windows\Microsoft.NET\Framework64\v4.0.3031
9"
成功: 指定的值已得到保存。
C:\Users\byme>set path
Path=C:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Program Files (x86
)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\P
rogram Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System
32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel
\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\P
rogram Files\qemu;D:\Java\jdk1.7.0_79\bin;D:\Java\jdk1.7.0_79\jre\bin;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
C:\Users\byme>
此时关掉当前终端 重新打开一个 cmd 终端 编译器可以在任何地方使用:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Users\byme>csc
Microsoft (R) Visual C# Compiler version 4.8.3761.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only
supports language versions up to C# 5, which is no longer the latest version. Fo
r compilers that support newer versions of the C# programming language, see http
://go.microsoft.com/fwlink/?LinkID=533240
warning CS2008: No source files specified
error CS1562: Outputs without source must have the /out option specified
C:\Users\byme>
之后就可以随意编译 c# 源文件啦:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Windows\system32>cd ..
C:\Windows>cd ..
C:\>dir hw.cs /* 找到源文件 */
驱动器 C 中的卷是 System_8.1
卷的序列号是 B6F6-A064
C:\ 的目录
2022/06/27 17:16 168 hw.cs
1 个文件 168 字节
0 个目录 6,312,771,584 可用字节
C:\>dir hw.exe /* 还没有编译所以没有该程序 */
驱动器 C 中的卷是 System_8.1
卷的序列号是 B6F6-A064
C:\ 的目录
找不到文件
C:\>csc hw.cs /* 编译成功 */
Microsoft (R) Visual C# Compiler version 4.8.3761.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only
supports language versions up to C# 5, which is no longer the latest version. Fo
r compilers that support newer versions of the C# programming language, see http
://go.microsoft.com/fwlink/?LinkID=533240
C:\>dir hw.exe /* 找到编译后的程序 */
驱动器 C 中的卷是 System_8.1
卷的序列号是 B6F6-A064
C:\ 的目录
2022/06/27 18:01 3,584 hw.exe
1 个文件 3,584 字节
0 个目录 6,312,632,320 可用字节
C:\>hw /* 运行成功 */
Hello,World!
C:\>
活动地址:毕业季·进击的技术er