2017-9-15第一次学习C#内容(隐式转换,语句,输入输出,格式字符串,示例)

  1. 类型转换

1).隐式转换

注意:

隐式转换中不存在向char类型的隐式转换,float和double类型也不能隐式转换为decimal型.

2)强制类型转换

(目标类型) (表达式)

3)其他方式的转换\

①Parse

目标类型.Parse(待转换字符串)

②as

as运算符用以在兼容的引用类型之间执行某些类型的转换。如果要转换的类型与指定的类型兼容,转换就会成功,反之,就会失败as运算符就会返回null而不是引发异常。

③装箱与拆箱

装箱和拆箱能使值类型能够与object类型发生转换

装箱是将值类型转换为引用类型,即分配一个对象实例并将“值类型”的值复制到该实例中。

而拆箱是将引用类型转换为值类型。拆箱操作首先检查对象实例,确保它是给定值类型的一个装箱值,然后将该 值从对象实例复制到值类型变量中。

//自己总结:拆箱和装箱使一个依存的操作只有在装箱的基础上才存在所谓的拆箱。

  1. 语句

1) 可作为语句的表达式:

使用new运算符的对象分配   A=new object();

各种赋值运算

自增自减运算

2)  方法调用语句

对象名.方法名(参考列表);//调用不同类的实例方法

String  s=”hello“’; s=s.ToUpper();

类名.方法名(参考列表);//调用不同类的静态方法   Console.WriteLine(“Hello”);

方法名(参考列表);//调用同一类的方法         Max (a,b);

  1. 输入输出

C#中并不提供输入输出语句,其输入输出操作是借助于一些预定义类来实现的。

Console类提供用于从控制台读取单个字符或整行的方法,并且该类还可将值类型的数据,字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串写入控制台。

使用Console类需要在源程序开头使用using指令进行命名空间system的引入如果没有引入该命名空间则需要在程序设计的时候使用Console的完全限定名,应把Console替换为System。Console

1)  输入方法

①  Read    Read方法从标准输入流读取下一个字符。其返回是输入流种下一个字符的Unicode编码值,返回值类型是System.Int32;如果当前没有更多的字符可供读取则返回1.定义的方法: public static int Read();

注意: Read方法只有在同时ctrl+Z,发出到达文件的结尾的时候;按发出文件结尾条件的等效按键例如windows中的F6;将输入流重定向到具有实际的文件尾字符的源,例如文本文件。

②  ReadLine   从标准的输入流中读取下一行的字符,其返回值类型为System.String;如果没有更多的可用行,则返回null方法定义如下:public statid string ReadLine();如果在该方法读取输入的时候按curl+z则返回的为null

③  ReadKey

ReadKey方法获取用户的下一个字符或者功能键。返回值类型为:System.ConcoleKeyInfo,描述Consolekey常数和对应于按下控制台键的Unicode字符(如果存在这样的字符)

ConsoleKeyInfo对象还以ConsoleModifiers值得安位组合描述按在控制台键的同时按下shift,Alt,Ctrl键中的一个。

两种重载方法如下:public static consoleJKeyInfo  ReradKey();

Public static ConsoleKeyInfo  ReadKey(bool intercept);

2)  输出方法

①  Writer       输出后并没有自动换行

②  WriterLine   输出后自动换行

WriteLine(输出项);

WriterLine(格式控制,输出列表);Console.WriterLine(“{0:X}”,d); //将d按16进制输出后回车

WriterLine(); //输出空行

4.格式字符串

格式项:

{索引 [,对齐]  [:格式字符串] }

①  索引  ,即强制“索引”组件(也叫作参数说明符)是一个从0开始的数字,可表示对象列表中对应的第多少项;通过指定同样的参数说明符,多个格式项可以指定对象列表中的同一个元素//自己的话说就是方便为同一个参数项设置不同的格式类型而已。

例如 {0:X}{0:E}{0:N}的复合格式字符串,可以将第一个列表项的数值设置为16进制,科学计数法和数字格式进行输出

②  对齐  正数为右对齐反之

③  如果指定格式说明符则需要使用冒号:

5.当四个数字相比较的时候怎样使if 的嵌套相对比较少的选择如下:

中心思想就是两个两个的相互比较,从中选择出相对应的关系出来

代码:    int a, b, c, d,t;

a = Convert.ToInt32(Console.ReadLine()); //这样的话每次的输入都要以回车键结束

b = Convert.ToInt32(Console.ReadLine());

c = Convert.ToInt32(Console.ReadLine());

d = Convert.ToInt32(Console.ReadLine());

if (a > b) { t = a; a = b; b = t; }

if (a > c) { t = a; a = b; b = t; }

if (a > d) { t=  a; a = d; d = t;}

if (b > c) { t = b ; b = c; c = t;}

if (b > d) { t = b; b = d; d = t; }

if (c > d) { t = c ; c = d; d = t;}

Console .WriteLine ("{0},{1} ,{2},{3}",a, b, c, d);

6.兔子繁殖问题

题目:有一对兔子,从出生后第三个月起每月生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子都不会死亡,那么将会在第几个月的时候兔子的数量达到100对??

::兔子的数量规律的数列:1,1,2,3,5,8,。。。。,即从第三个月开始兔子的数量为前每两个月的兔子之和,是著名的斐波那契数列。

代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int i, f1 = 1, f2 = 1,fn;

for (i = 3; ; i++)

{

fn = f1 + f2;

if (fn >= 100)

{

Console.WriteLine("第{0}个月兔子的数量达到ì了100对?", i);

break;

}

f1 = f2;

f2 = fn;

}

Console.ReadLine();

}

}

}

时间: 2024-08-02 17:19:46

2017-9-15第一次学习C#内容(隐式转换,语句,输入输出,格式字符串,示例)的相关文章

大数据学习:Scala隐式转换和并发编程(DT大数据梦工厂)

很多Spark代码中使用了隐式转换.隐式参数.隐式类.隐式对象 如果不掌握,基本在读写复杂代码的时候读不懂 并发编程,怎么样进行高效并发,相互之间怎么通信,Spark这种分布式并发肯定非常重要 (Actor.Akka) ==========隐式转换函数============ 可以手动指定将某种类型的对象转换成其它类型的对象或者类 转换原因:假设制定好接口 比如File,我们想要File.dtSpark的方法,在JAVA中不行 如果在Scala里面我们可以进行升级,将File编程其它类型,就用之

Scala入门到精通——第十九节 隐式转换与隐式参数(二)

作者:摇摆少年梦 配套视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 隐式参数中的隐式转换 函数中隐式参数使用概要 隐式转换问题梳理 1. 隐式参数中的隐式转换 前一讲中,我们提到函数中如果存在隐式参数,在使用该函数的时候如果不给定对应的参数,则编译器会自动帮我们搜索相应的隐式值,并将该隐式值作为函数的参数,这里面其实没有涉及到隐式转换,本节将演示如何利用隐式参数进行隐式转换,下面的代码给定的是一个普通的比较函数: object ImplicitP

Scala入门到精通——第十八节 隐式转换与隐式参数(一)

本节主要内容 隐式转换简介 隐式转换函数 隐式转换规则 隐式参数 1. 隐式转换简介 在scala语言当中,隐式转换是一项强大的程序语言功能,它不仅能够简化程序设计,也能够使程序具有很强的灵活性.要想更进一步地掌握scala语言,了解其隐式转换的作用与原理是很有必要的,否则很难得以应手地处理日常开发中的问题. 在scala语言中,隐式转换是无处不在的,只不过scala语言为我们隐藏了相应的细节,例如scala中的类继承层次结构中: 它们存在固有的隐式转换,不需要人工进行干预,例如Float在必要

scala学习笔记-隐式转换与隐式参数(18)

Scala提供的隐式转换和隐式参数功能,是非常有特色的功能.是Java等编程语言所没有的功能.它可以允许你手动指定,将某种类型的对象转换成其他类型的对象.通过这些功能,可以实现非常强大,而且特殊的功能. Scala的隐式转换,其实最核心的就是定义隐式转换函数,即implicit conversion function.定义的隐式转换函数,只要在编写的程序内引入,就会被Scala自动使用.Scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传入隐式转

scala学习手记35 - 隐式类型转换

先来看一下下面的内容: 2 days "ago" 5 days "from_now" 如上的内容具体应该是什么呢?不过怎么看也不像是代码.不过既然是在学代码,拿不是代码的东西出来做什么! 非要强说是代码的话,那么执行起来肯定是要报错的--因为scala的Int和RichInt,以及Integer中都没有days这样的方法: 如果说不是代码的话,那么scala中的to或until本来看起来也不像代码: 2 to 6 2 until 7 现在剩下的就是怎么为整型值添加上

js学习日记-隐式转换相关的坑及知识

隐式转换比较是js中绕不过去的坎,就算有几年经验的工程师也很有可能对这块知识不够熟悉.就算你知道使用===比较从而避免踩坑,但是团队其它成员不一定知道有这样或那样的坑,有后端语言经验的人常常会形成一个思维误区:"JS这门语言很简单,看看语法再找几个例子就能操作DOM,编写特效了".随着react.vue.html5等技术在项目中大规模使用,越来越多的项目中使用了大量的JS,甚至整个项目都用JS来写(例如基于webapi的SPA管理后台.微信小程序.微信H5应用,Hybrid app),

Scala 学习笔记之隐式参数和隐式转换并用

隐式转换条件: 1. 当表达式类型与预期的类型不同时 2.当对象访问一个不存在的成员时 3.当对象调用某个方法,而该方法的参数声明与传入参数不相匹时. 隐式转换搜索范围: 1. 位于源火目标类型伴生对象中的隐式函数. 2. 位于当前作用域可以以单个标识符指代的隐式函数. 隐式参数条件: 函数中参数带有implicit 隐式参数搜索范围: 在当前作用域所有可以用单个标识符指代的满足类型要求的val和def. 与所要求类型相关联的类型的伴生对象. 隐式参数和隐式转换并用例子: class A { d

Scala学习笔记--隐式转换

隐式转换的规则:1.无歧义规则:隐式转换唯有不存在其他可插入转换的前提下才能插入  若编译器有两种方法修正x+y 如convert1(x)+y,convert2(x)+y,会报错2.单一调用规则:只尝试一个隐式操作,编译器不会把x+y重写成convert1(convert2(x))+y3.显式调用规则:若编写的代码没有错误,则不会尝试任何隐式操作4.命名隐式转换:隐式转换可以任意命名

C#学习笔记(隐式和显式转化、枚举类型、结构类型、数组类型和字符串)

1 类型转换 1.1 隐式转换:从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换. ushort destinationVar; char sourceVar = 'a'; destinationVar = sourceVar; Console.WirteLine("soueceVar Val:{0}",sourceVar); Console.wirteLine("destination Val:{0}",destinatio