编程哲学之 C# 篇:005——"Hello,World!"
如第一章说明,程序员的创造能力最接近于神,那么从现在开始,让我们来开始愉快地创造世界吧!
用解决方案来管理我们的创作
运行我们安装好的Visual Studio(以后一般情况下都会简称为VS),如下图所示,选择 文件
→ 新建
→ 项目
在弹出来的 新建项目
窗口中,如下图所示,选择 其他项目类型
→ Visual Studio 解决方案
→ 空白解决方案
在 名称(N):
处,我们填写上 Universe
在 位置(L):
则根据自己的电脑环境选择自己想存放该解决方案的文件目录。
创建完 Universe
解决方案后,我们能看到VS界面右边的 解决方案资源管理器
应该会如下图所示
右击 解决方案'Universe'
选择 在文件资源管理器中打开文件夹
,看看我们创建了什么。
我们看到了在文件目录中有一个叫 Universe.sln
的文件。
右击 解决方案'Universe'
选择 添加
→ 新建解决方案文件夹
然后给文件夹名称起名 .NET
再次右击 解决方案'Universe'
选择 添加
→ 新建解决方案文件夹
然后给文件夹名称起名 .NET Core
最终 解决方案资源管理器
应该会如下图所示
再次右击 解决方案'Universe'
选择 在文件资源管理器中打开文件夹
,看看我们创建了什么。
我们看到了在文件目录中依然只有一个叫 Universe.sln
的文件。没有 .NET
文件夹或 .NET Core
文件夹。你也许会很困惑为什么会这样,后面会解释,这里让我们继续专注完成"Hello,World!"
例子把~
.NET版本的"Hello,World!"
在 解决方案资源管理器
右击 .NET
文件夹,选择 添加
→ 新建项目
在弹出来的 新建项目
窗口中,如下图所示,选择 Visual C#
→ 控制台应用(.NET Framework)
在 名称(N):
处,我们填写上 HelloWorld
在 位置(L):
文件夹路径尾部添加上 \.NET
在 框架(F):
选择最高的版本,不一定要和截图一致,截图中是 .NET Framework 4.7.1
点击 确定
按钮后,VS左边会打开 Program.cs
如下图所示
而在VS右边的 解决方案资源管理器
应该会如下图所以
我们会在 Program.cs
这个文件的 static void Main(string[] args){}
两个大括号之间添加代码,最终代码如下面所示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello,World!");
Console.WriteLine("宇宙纪元:" + DateTime.Now.ToString());
Console.ReadLine();
}
}
}
而在VS顶部菜单栏中点击 启动
,或者按键盘上的 F5
,运行我们刚刚编写的代码~
至此,我们完成了编程界著名的 "Hello,World!"
例子,同时也创造了我们第一个动态世界——每次点击 启动
,或者按键盘上的 F5
,运行我们编写的代码,每次的时间都不一样。虽然例子很简单,但记住,当你能力越强,创出出来的世界越丰富!
这里解释一下上面提到的为什么没有 .NET
文件夹或 .NET Core
文件夹。我们点击 解决方案资源管理器
中的 HelloWorld
项目,将其拖动到.NET Core
文件夹中
然后右击 解决方案'Universe'
选择 在文件资源管理器中打开文件夹
看看~
我们看到文件夹中.NET
文件夹和 Universe.sln
的文件,并没有.NET Core
文件夹,而.NET
文件夹是我们在创建 HelloWorld
项目在 位置(L):
文件夹路径尾部添加上 \.NET
创建出来的。
因此我们可以得知在VS右边的 解决方案资源管理器
点击 解决方案'Universe'
选择 添加
→ 新建解决方案文件夹
创造出来的文件夹并不会出现在真实的文件目录中,只是用来管理我们项目的虚拟目录。当然我们可以将虚拟目录隐射到真实目录。介绍这些的原因是因为这里有几个概念需要读者先了解一个大概, 按物理分
,按逻辑分
和 映射
,同时介绍怎么更好地管理资源。
再次点击 解决方案资源管理器
中的 HelloWorld
项目,将其拖动回到 .NET
文件夹中,如下图所示~
.NET Core版本的"Hello,World!"
让我们在 .NET Core
文件夹下创建一个项目来试试.NET Core版本的"Hello,World!"把~
在 解决方案资源管理器
右击 .NET Core
文件夹,选择 添加
→ 新建项目
在弹出来的 新建项目
窗口中,如下图所示,选择 Visual C#
→ .NET Core
→ 控制台应用(.NET Core)
在 名称(N):
处,我们填写上 HelloWorldCore
在 位置(L):
文件夹路径尾部添加上 \NetCore
,特别不一样,再次体验 按物理分
,按逻辑分
和 映射
点击确定
按钮后,VS右边的 解决方案资源管理器
应该如下图所示~
依然右击 解决方案'Universe'
选择 在文件资源管理器中打开文件夹
,看看我们创建了什么。
新创建 Program.cs
的内容默认如下面代码段:
using System;
namespace HelloWorldCore
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
我们添加添加代码后,如下面代码段展示:
using System;
namespace HelloWorldCore
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello,World!");
Console.WriteLine("宇宙纪元:" + DateTime.Now.ToString());
Console.ReadLine();
}
}
}
在VS右边的 解决方案资源管理器
,右击 HelloWorldCore
选择 设为启动项目
,如下图所示~
而在VS顶部菜单栏中点击 HelloWorldCore
,或者按键盘上的 F5
,运行我们刚刚编写的代码。
至此,我们完成 "Hello,World!"
的.NET Core版本。
结束语
本章介绍如何创建两个版本的"Hello,World!",
但你应该很困惑,那些代码每行是什么意思啊,不用急,后面会一一解释。
下一章,将介绍什么是.NET,什么是.NET Core。
编程哲学之 C# 篇:005——"Hello,World!"的更多相关文章
- 编程哲学之C#篇:02——学习思维
<代码大全>的第二章:介绍隐喻(类比)的思维方式, <经济学原理>的第二章:介绍怎么像经济学家一样思考, <计算机的心智操作系统之哲学原理>的第一章:介绍学习操作系 ...
- 编程哲学之C#篇:01——创世纪
我们能否像神一样地创建一个世界? 对于创建世界而言,程序员的创作能力最接近于神--相对于导演,作家,漫画家而言,他们创建的世界(作品)一旦完成,就再也不会变化,创建的角色再也不会成长.而程序员创建的世 ...
- 编程哲学之 C# 篇:007——如何创造万物
上帝拥有创建万物的能力,本文介绍创造万物的道,让你也拥有上帝般创造万物的能力! 道 中国哲学家,道家学派创始人--老子,在<道德经>写到: 道生一,一生二,二生三,三生万物 那么,是什么 ...
- Python黑帽编程2.1 Python编程哲学
Python黑帽编程2.1 Python编程哲学 本节的内容有些趣味性,涉及到很多人为什么会选择Python,为什么会喜欢这门语言.我带大家膜拜下Python作者的Python之禅,然后再来了解下P ...
- Linux shell脚本编程基础之练习篇
shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...
- 浅谈.Net异步编程的前世今生----APM篇
前言 在.Net程序开发过程中,我们经常会遇到如下场景: 编写WinForm程序客户端,需要查询数据库获取数据,于是我们根据需求写好了代码后,点击查询,发现界面卡死,无法响应.经过调试,发现查询数据库 ...
- Scala进阶之路-并发编程模型Akka入门篇
Scala进阶之路-并发编程模型Akka入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Akka Actor介绍 1>.Akka介绍 写并发程序很难.程序员不得不处 ...
- 浅谈.Net异步编程的前世今生----EAP篇
前言 在上一篇博文中,我们提到了APM模型实现异步编程的模式,通过使用APM模型,可以简化.Net中编写异步程序的方式,但APM模型本身依然存在一些缺点,如无法得知操作进度,不能取消异步操作等. 针对 ...
- 从编程哲学到开发应用:Spring的初步应用
一.前言 在学习Spring的过程中,我们学习了很多东西,可是实际应用中,我们究竟用到了那些?常用的又是那种方法呢? 二.书上与开发的差异 1.IOC 1) IOC,控制反转,是Spring框架的核心 ...
- 并发编程之第三篇(synchronized)
并发编程之第三篇(synchronized) 3. 自旋优化 4. 偏向锁 撤销-其它线程使用对象 撤销-调用wait/notify 批量重偏向 批量撤销 5. 锁消除 4.7 wait/notify ...
随机推荐
- 死磕Java面试系列:深拷贝与浅拷贝的实现原理
深拷贝与浅拷贝的问题,也是面试中的常客.虽然大家都知道两者表现形式不同点在哪里,但是很少去深究其底层原理,也不知道怎么才能优雅的实现一个深拷贝.其实工作中也常常需要实现深拷贝,今天一灯就带大家一块深入 ...
- IOT黑客入门篇之初探Badusb
什么是Badusb? BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击.例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存 ...
- linux下进程的实际用户ID(有效组)和有效用户ID(有效组ID)
实际用户ID(实际组ID):标识当前用户(所属组)是谁,当用户登陆时取自口令文件. 有效用户ID(有效组ID):用来决定我们(当前进程)对文件的访问权(即实际该进程的是以那个用户运行的). 一般情况下 ...
- Pinely Round 1 (Div. 1 + Div. 2)
比赛链接 A 题意 构造两个长为 \(n\) 排列,使得两排列有长为 \(a\) 公共前缀和长为 \(b\) 的公共后缀. 题解 知识点:构造. 注意到,当 \(a+b\leq n-2\) 时,中间段 ...
- Kafka事务原理剖析
一.事务概览 提起事务,我们第一印象可能就是ACID,需要满足原子性.一致性.事务隔离级别等概念,那kafka的事务能做到什么程度呢?我们首先看一下如何使用事务 Producer端代码如下 Kafka ...
- Python: 你所不知道的星号 * 用法
以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/FHyosiG_tegF5NRUEs7UdA 本文大概 1193 个 ...
- 【Java并发入门】02 Java内存模型:看Java如何解决可见性和有序性问题
如何解决其中的可见性和有序性导致的问题,这也就引出来了今天的主角--Java 内存模型. 一.什么是 Java 内存模型? 导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性.有序性最直 ...
- C++使用ODBC连接数据库遇到的问题
C++使用ODBC连接数据库遇到的问题 1.SQL语句中包含中文无法正常执行的问题 2.字符与宽字符相互转化的问题 C++使用ODBC连接数据库遇到的问题 1.SQL语句中包含中文无法正常执行的问题 ...
- 4.7:Hive操作实验
〇.概述 1.拓扑结构 2.目标 通过Hive实验熟悉Hive的基本操作 一.操作流程 1.启动环境 2.启动hive 输入 cd /home/user/bigdata/apache-hive-2.3 ...
- 【每日一题】【遍历orSet】2022年2月1日-NC66 两个链表的第一个公共结点
描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空.(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 输入描述:输入分为是3段,第 ...