饮水思源:金老师的自学网站C# Guide

一、变量与数据类型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int intValue = ;
long longValue = 100L;
double doubleValue = 100.5d;
float floatValue = 100.5f; Console.WriteLine("==========GetType()===============");
Console.WriteLine(intValue.GetType());
Console.WriteLine(longValue.GetType());
Console.WriteLine(doubleValue.GetType());
Console.WriteLine(floatValue.GetType()); Console.WriteLine(typeof(int));
Console.WriteLine(typeof(int) == intValue.GetType()); // typeof可用于检测变量是否是特定类型
// => System.Int32
// => System.Int64
// => System.Double
// => System.Single // => System.Int32
// => True
Console.ReadKey();
Console.WriteLine("==========String or string?===============");
Console.WriteLine(typeof(String) == typeof(string)); // => True
// 但是string仍然属于引用类型,生存于“堆”中
Console.ReadKey(); Console.WriteLine("==========var===============");
var v1 = "hello"; // 但是用var关键字定义变量时,c#可以根据右边的赋值,自动推断类型
var v2 = new Dictionary<string, List<int>>();
Console.WriteLine("type of v1: {0}\ntype of v2: {1}", v1.GetType(), v2.GetType());
Console.ReadKey(); Console.WriteLine("==========sizeof===============");
Console.WriteLine("int所占字节的大小" + sizeof(int)); // => 4
Console.WriteLine("long所占字节的大小" + sizeof(long)); // => 8
long v3 = 22L;
int v4 = (int) v3; // 所占字节大的赋给所占字节小的需要类型转换
Console.ReadKey(); // string转化为数值类型
v4 = int.Parse("") + Convert.ToInt32("");
Console.WriteLine("v4: " + v4); // 隐式调用了v4.ToString()
Console.ReadKey();
}
}
}

二、C#中For each的写法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var names = new List<string> { "<name>", "Ana", "Felipe" };
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
} int[] numbers = { , , };
foreach (var number in numbers)
{
Console.WriteLine(number);
} Console.ReadKey();
}
}
}

三、C#控制台程序编程技巧

https://docs.microsoft.com/en-us/dotnet/api/system.console?view=netframework-4.8#methods

四、简易图片浏览器

        private void button1_Click(object sender, EventArgs e)
{
loadPic();
} /// <summary>
/// 加载图片
/// </summary>
private void loadPic()
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
MessageBox.Show("即将为你打开图片:" + openFileDialog1.FileName);
pictureBox1.ImageLocation = openFileDialog1.FileName;
}
else
{
MessageBox.Show("操作已取消");
}
}

五、BigInteger以及浮点数的比较

using System;
using System.Numerics; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// 计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,
// 当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表
// 示为它所能处理的最多位数。 // 需要添加对System.Numerics程序集的引用
BigInteger bi = long.MaxValue;
bi *= ;
Console.WriteLine(long.MaxValue);
Console.WriteLine(bi);
// => 9223372036854775807
// => 18446744073709551614
Console.ReadKey(); double i = 0.0001;
double j = 0.00010000000000000001;
Console.WriteLine(i == j); // => True
// 计算机不能精确地表达浮点数(特殊形式的除外),因此,当
// 需要比较两个浮点数是否相等时,应该比较其差的绝对值是否
// 在某个允许范围之内即可,无法做到像数学那样的精确比较。
Console.WriteLine(Math.Abs(i - j) < 1e-); // => True
Console.ReadKey();
}
}
}

C sharp #002# 结构化编程基础的更多相关文章

  1. Mysql学习笔记(002)-基础查询

    基础查询 # 进阶1:基础查询 /* 语法: select 查询列表 from 表名: 类似于:system.out.println(打印东西); 特点: 1.查询列表可以是:表中的字段,常量值,表达 ...

  2. Windows 系统判断MD5 值的办法

    Linux 系统的文件要传到Windows系统里面,传输过程中网络不稳定,为了判断文件是否完整传输,所以就用md5的方式判断是否同一个文件 Linux系统 [root@augusite ~]# md5 ...

  3. HearthBuddy炉石兄弟 Method 'Entity.GetRace' not found.

    解决方案 namespace Triton.Game.Mapping{// Token: 0x020004A4 RID: 1188[Attribute38("Entity")]pu ...

  4. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  5. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  6. HTML 002 基础

    HTML 基础- 4个实例 HTML 标题 HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的. 实例 <h1>这是一个标题</h1& ...

  7. [JavaWeb基础] 002.JSP和SERVLET初级入门

    上一篇中,我介绍了javaweb项目的创建和Tomcat的搭建和部署,接下来我们要在上一篇的基础上去讲解一下简单的jsp和servlet交互,做出一个简单的登陆功能页面.该例子主要讲解了从页面请求道后 ...

  8. Java基础教程——结构化编程

    结构化编程 各结构的图示请参见: https://www.cnblogs.com/tigerlion/p/10703926.html 选择结构 |-if:如果 |-else:其他:此外:否则. pub ...

  9. 🚴‍♂️全套MySQL数据库教程_Mysql基础入门教程,零基础小白自学MySQL数据库必备教程☔ #002 # 第二单元 MySQL数据类型、操作表#

    二.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.Mysql的数据类型2.如何选择数据类型3.创建表4.修改表5.删除表 (Ⅱ)能力目标 1.熟练创建数据库及删除数据 ...

随机推荐

  1. 要想深入理解mysql索引?这16个点你必须要了解!

    前言 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQ ...

  2. 【朝花夕拾】Android多线程之(三)runOnUiThread篇——程序猿们的贴心小棉袄

    runOnUiThread()的使用以及原理实在是太简单了,简单到笔者开始都懒得单独开一篇文章来写它.当然这里说的简单,是针对对Handler比较熟悉的童鞋而言的.不过麻雀虽小,五脏俱全,runOnU ...

  3. 【UIBE】研究生考试前必看

      梦想就在前方,再跨一步就能到达.考研的同学们,请务必加油! 回想4年前的今天,坐在图书馆里的我,紧张于即将来临的考试,期待于每天憧憬的未来.大半年的复习生活,我学会了很多,学会了早起抢座位:学会了 ...

  4. throw和throws有什么区别

    1.Throw用于方法内部,Throws用于方法声明上 2.Throw后跟异常对象,Throws后跟异常类型 3.Throw后只能跟一个异常对象,Throws后可以一次声明多种异常类型 throw关键 ...

  5. webpack学习1.1 webpack背景介绍

    一.为什么要前端需要构建? 开发复杂化 框架去中心化(代码中需要的模块都可以通过npm安装佢解决一个问题,包越来越零散,根据需要来安装) 开发编译化 语言模块化 二.为什么要用webpack? 1.三 ...

  6. Elasticsearch(GEO)数据写入和空间检索

    Elasticsearch简介 什么是 Elasticsearch? Elasticsearch 是一个开源的分布式 RESTful搜索和分析引擎,能够解决越来越多不同的应用场景. 本文内容 本文主要 ...

  7. crontab 定时任务没有响应 检测步骤

    设置规则 # 每分钟执行一次 */1 * * * * /scripts/script.sh # 每小时执行一次 0 */1 * * * /scripts/script.sh # 每天 02:00 执行 ...

  8. DFA敏感词过滤实现

    package test.java.com.odianyun.util.sensi; import java.util.*; /** * 敏感词处理工具 - DFA算法实现 * * @author s ...

  9. VS2019 开发Django(五)------createsuperuser

    导航:VS2019开发Django系列 上篇我们已经把LazyOrders中用到的C#的实体转成了Django中的Entity,并且已经迁移数据库成功,那么,今天继续介绍Django中内置的数据库操作 ...

  10. idea之常用快捷键

    之前一直在使用eclipse,后来工作中慢慢开始使用idea了,这里总结一些idea的快捷键,方便以后查询使用. 一.查找相关快捷键 1.双击shift在项目的所有目录查找,就是你想看到你不想看到的和 ...