C#_初识之HelloWorld
C#————是一个我很不愿意去碰的语言,但是还是得低头,巨硬还是巨硬.......
————————————————————————————————————————————————
前几天在Github上找开源资料,希望能借鉴一下,仔细一看,window平台的基本上是C#代码,然后这些代码是我无法翻译的,即使有很深的类C基础,但我没有任何基于.Net的常识。
于是我才会萌生了学习.net的想法。在VB6学完之后,我觉得VB.NET没有意思,换了结构,还要带运行库,向下兼容又不好,以至于很长时间内我很讨厌net代码。
Net是一个很重的枷锁,能用VB6去替代的我都会用VB6,但是有一些东西是你没有办法替代的,毕竟20年的差距是巨大的。
不说那么多前言了。
————————————————————————————————————————
有C/C++基础的人[代表着这可能不适合完全零基础的window小白阅读],可以很快的上手这个语言,而且在有.net支持下,一切都是那么的行云流水。[毕竟VS2017不会像VB6IDE一样一天爆炸20几次。]
——————————————————————————————————————————————————
我使用的工具如下:
Vs2017
Vscode
C#语法教程 https://www.runoob.com/csharp/csharp-tutorial.html
————————————————————————————————
学习VB的人第一个程序大概是这样的。

———————————————————————————————————————————————————
和VB一样,VSIDE让你可以很快的上手winform开发。[拖控件~~ /。。。但是工程文件真的好大]
使用拖控件和用一个万法相同的语法...赋值语句
所以我们也来制作显示HelloWorld的windows图形程序。[我十分讨厌命令行,但是不能否认,其实命令行程序才是你学习语言好工具]
——————————————————————————————————————————————————
打开VS2017 新建项目 选择

大概进度条几秒钟后,你就能看到这么一个设计页面。


如果你的侧边栏没有工具箱,那么请从视图——》工具箱 ——》公共控件——》选中Button在窗体里拖拽设置一个按钮,双击跳转到代码页面。
应该是长这个样子。

非常熟悉的大括号和void 这是类C语言最经典的标志了。
熟用VB开发的人肯定会很快就明白上面的函数代表着什么,没错,就是事件。
当你去寻找Print函数的时候,很快就会发现,winform并没有给你提供这个函数。
那么我们就用GDI+[C#调用GDIP是真的简单,快哭了,VB要声明一堆东西。]写一下这个函数好了[经过一些百度文字教程,你应该很快就能了解到部分语法]。
public partial class Form1 : Form{
Graphics aaa;
void Print(string str){
//GDI+ 模拟Print输出
Font PrintFont;
PrintFont = new Font("Microsoft YaHei UI", 24.00F);
SolidBrush Brush = new SolidBrush(Color.FromArgb(, , , ));
aaa = this.CreateGraphics();
aaa.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
aaa.DrawString(str, PrintFont, Brush, , );}
}
接着在Button_Click()事件中调用这个Print。 [winform 貌似没有自动重绘的属性,所以不建议放在Load事件里执行]
private void button1_Click(object sender, EventArgs e){
Print("HelloWorld");
}
于是我们就得到了第一个C#桌面程序:

C#_初识之HelloWorld的更多相关文章
- Python成长之路第一篇(3)_初识字典
经过上章的学习我们已经了解到了列表可以通过索引来获取对应的值,在本章我们将学到通过名字来索引数据,这种结构的类型称之为映射(maooing),在Python中字典是唯一内建的映射类型,其中的值我们称之 ...
- Python基础(1)_初识Python
一.为什么要编程 解放人力:让机器按照人们事先为其编写好的程序自发地去工作 二.什么是编程语言 编程语言就是程序员与计算机之间沟通的介质:程序员把自己想说的话用编程语言写到文件里,这其实就开发了一个程 ...
- 【秒懂Java】【第1章_初识Java】02_软件开发
通过上一篇文章<01_编程语言>,我们了解到 Java是众多编程语言中的其中一种 编程语言可以用来开发软件 因此,我们即将要学习的Java技术,是属于软件开发的范畴.那软件开发的前景如何呢 ...
- python成长之路第三篇(1)_初识函数
目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...
- 每天一个Linux命令(19)find命令_初识
Linux下find命令在目录结构中搜索文件,并执行指定的操作. (1)用法: 用法: find pathname -option [-print | -exec | -ok] ...
- Python练习_初识数据类型_day3
题目 1. 作业 1,有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的&quo ...
- Python练习_初识函数_day9
1. 1.作业 1,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. 2,写函数,判断用户传入的对象(字符串.列表.元组)长度是否大于5. 3,写函数,检查 ...
- 【秒懂Java】【第1章_初识Java】01_编程语言
各位小伙伴们好哇!从今日起,我将开始更新<秒懂Java>系列文章,从0开始讲解Java的方方面面,后面也将推出配套的视频版,欢迎大家保持关注! 我会尽力办到:在保证通俗易懂的同时,不丢失知 ...
- 【秒懂Java】【第1章_初识Java】04_学习资料
为了学到更多的新知识,我们经常会去网上搜索各种学习资料.或者,在学习.工作过程中遇到了解决不了的问题,我们也会去网上搜索答案(比如百度.谷歌一下).这篇文章,主要想跟大家聊聊关于学习资料的选择. 建议 ...
随机推荐
- EXE中释放DLL中分配的内存
在DLL中分配的内存,如果到其调用者中释放,可能会出现CRASH的情况,其原因在于: 在DLL中的Code Generation如果是采用了MT(静态加载LIBCRTD.LIB)在该库中维护了一个al ...
- js 获取滚动条的高度
function getScrollTop() { var scroll_top = 0; if (document.documentElement && document.docum ...
- IVIEW组件的render方法在Table组件中的使用
后端项目地址:https://gitee.com/wlovet/table-server 前端项目地址: https://gitee.com/wlovet/table-project 一.Rende ...
- ACM之路(15)—— 字典树入门练习
刷的一套字典树的题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=120748#overview 个人喜欢指针的字典树写法,但是大力 ...
- TCO14 Wildcard CountTables——斯特林反演
不知道咕了多长时间的题... 讲了3遍,还是自己搞懂了.. 暂时没有找到题目链接 题意: n×m的网格,每个格子填[1,x]的数,使得不存在两行两列同构. 先保证一个,行相同. 再容斥掉列. 枚举至多 ...
- hashcode(),equal()方法经典分析
首先,想要明白hashCode的作用,必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重 ...
- OpenDayLight安装Features
OpenDayLight 0.4.4-Beryllium-SR4 opendaylight-user@root>feature:install odl-restconf opendaylight ...
- 【sed】基本用法
1. 文本处理 sed编辑器根据sed命令处理数据流中的数据:在流编辑器将所有命令与一行数据匹配完后,它会读取下一行数据并重复以下过程: (1) 一次从输入中读取一行数据 (2) 根据所提供的编辑器命 ...
- PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE方法的区别
PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE方法的区别 在PL/SQL中在执行SQL语句时可以直接写SQL或者可以把一个SQL语句拼成一个字符串,如下: select * fr ...
- react-hook设定定时器的方法
const useInterval = (callback, delay) => { const savedCallback = useRef(); // 保存新回调 useEffect(() ...