C# 初学01
2014-07-13 18:24
190 查看
一、数据类型:
1、 decimal 关键字指示 128 位数据类型。
与浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。
如果希望实数被视为 decimal 类型,请使用后缀 m 或 M,例如:
decimal myMoney = 300.5m;
2、基本类型:sbyte,short,int long为有符号(有正有负),byte,ushort,uint,ulong为无符号(非负)
二、专门的转换函数(将输入在Console.Read()上的东西转换为需要的数据类型)
1、Parse()
例: int a=int.Parse(str1); //用Parse将接收到的str2转换为所需的整型int
如果字符串为空,则抛出ArgumentNullException异常;
如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;
2、TryParse
例:int.TryParse(str2,out a1); //检验str1->int是否转型成功,成功的话输出a1,不成功不输出
相对于Parse()不会返回错误,正确返回true输出a1,不正确返回false输出0
3、Convert类(System)
例:Convert.ToInt32(str3); //同上
4、ToString
例:Console.WriteLine(str4.ToString()); //全部转化为String型输出
三、空接合:
例:str1 fileName=null;
fillName= fileName??"deault.txt"; //当fileName为空时就输出”default.txt“,非空的话就输出fileName对应的值
Console.WriteLine(fileName);
Console.Read();
四、数组
list比array实用,具有多种方法以供调用
五、方法&参数
System.Console.Write("name");
//命名空间 类 方法 参数
using添加命名空间
1、ref ref 关键字使参数按引用传递
例:Swap(ref a,ref b){} //方法Swap
static void Swap(rep int a,rep int b){} //调用Swap方法,这里用rep传值,所以a,b都是共享的,而不是说只改变方法中的形参
out 类似ref
ref&out 的key:
a、ref传进去的参数必须在调用前初始化,out不必,即:int i;Method( ref i );//语法错误Method( out i );//通过
且在 ... 值类型与引用类型之间的转换过程称为装箱与拆箱;
b、ref传进去的参数在函数内部可以直接使用,而out不可:public void Method(ref int i){ int j=i;//通过}public void Method(out int i){ int j=i;//语法错误;
c、ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值;
d、系统对ref的限制是更少一些的。out虽然不要求在调用前一定要初始化,但是其值在函数内部是不可见的,也就是不能使用通过out传进来的值,并且一定要在
函数内赋一个值。或者说函数承担初始化这个变量的责任
2、泛型
例:static void Swap<T>(ref T a,ref T b){ //在方法后加了一个<T>然后用T作为参数的类型
T t;
t=a;a=b;b=t;
}
Swap<string>(ref a,ref b); //在调用的时候在<>里添加入数据类型,这样就免去了多种数据需要多次重写方法的悲剧
3、可变参数:
例:static int Sum(params int[] nums){ //params使用后Sum()的方法支持多个参数
return nums.Sum();
}
Console.WriteLine(Sum(1,2,3,4,5,6));
4、递归:
例:斐波那契数列
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fib
{
class Program
{
static long Fib(long n) {
if (n == 1 || n == 2)
{
return 1;
}
else {
return Fib(n-1)+Fib(n-2);
}
}
static void Main(string[] args)
{
for (int i = 1; i < 10; i++) {
Console.WriteLine(Fib(i));
}
Console.Read();
}
}
}
1、 decimal 关键字指示 128 位数据类型。
与浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。
如果希望实数被视为 decimal 类型,请使用后缀 m 或 M,例如:
decimal myMoney = 300.5m;
2、基本类型:sbyte,short,int long为有符号(有正有负),byte,ushort,uint,ulong为无符号(非负)
二、专门的转换函数(将输入在Console.Read()上的东西转换为需要的数据类型)
1、Parse()
例: int a=int.Parse(str1); //用Parse将接收到的str2转换为所需的整型int
如果字符串为空,则抛出ArgumentNullException异常;
如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;
2、TryParse
例:int.TryParse(str2,out a1); //检验str1->int是否转型成功,成功的话输出a1,不成功不输出
相对于Parse()不会返回错误,正确返回true输出a1,不正确返回false输出0
3、Convert类(System)
例:Convert.ToInt32(str3); //同上
4、ToString
例:Console.WriteLine(str4.ToString()); //全部转化为String型输出
三、空接合:
例:str1 fileName=null;
fillName= fileName??"deault.txt"; //当fileName为空时就输出”default.txt“,非空的话就输出fileName对应的值
Console.WriteLine(fileName);
Console.Read();
四、数组
list比array实用,具有多种方法以供调用
五、方法&参数
System.Console.Write("name");
//命名空间 类 方法 参数
using添加命名空间
1、ref ref 关键字使参数按引用传递
例:Swap(ref a,ref b){} //方法Swap
static void Swap(rep int a,rep int b){} //调用Swap方法,这里用rep传值,所以a,b都是共享的,而不是说只改变方法中的形参
out 类似ref
ref&out 的key:
a、ref传进去的参数必须在调用前初始化,out不必,即:int i;Method( ref i );//语法错误Method( out i );//通过
且在 ... 值类型与引用类型之间的转换过程称为装箱与拆箱;
b、ref传进去的参数在函数内部可以直接使用,而out不可:public void Method(ref int i){ int j=i;//通过}public void Method(out int i){ int j=i;//语法错误;
c、ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值;
d、系统对ref的限制是更少一些的。out虽然不要求在调用前一定要初始化,但是其值在函数内部是不可见的,也就是不能使用通过out传进来的值,并且一定要在
函数内赋一个值。或者说函数承担初始化这个变量的责任
2、泛型
例:static void Swap<T>(ref T a,ref T b){ //在方法后加了一个<T>然后用T作为参数的类型
T t;
t=a;a=b;b=t;
}
Swap<string>(ref a,ref b); //在调用的时候在<>里添加入数据类型,这样就免去了多种数据需要多次重写方法的悲剧
3、可变参数:
例:static int Sum(params int[] nums){ //params使用后Sum()的方法支持多个参数
return nums.Sum();
}
Console.WriteLine(Sum(1,2,3,4,5,6));
4、递归:
例:斐波那契数列
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fib
{
class Program
{
static long Fib(long n) {
if (n == 1 || n == 2)
{
return 1;
}
else {
return Fib(n-1)+Fib(n-2);
}
}
static void Main(string[] args)
{
for (int i = 1; i < 10; i++) {
Console.WriteLine(Fib(i));
}
Console.Read();
}
}
}
相关文章推荐
- 由C#风潮想起的-给初学编程者的忠告
- “由C#风潮想起的-给初学编程者的忠告”
- 由C#风潮想起的-给初学编程者的忠告
- 由C#风潮想起的-给初学编程者的忠告
- C#中类的继承问题01
- 初学C#,请问怎么在一个窗体中调用另一个窗体?
- 由C#风潮想起的-给初学编程者的忠告
- C#解惑01: 奇数性
- 由C#风潮想起的-给初学编程者的忠告
- c#初学之petshop!
- 初学C#两星期,一片茫然
- 由C#风潮想起的-给初学编程者的忠告
- C# 学习笔记 (Assembly)-01
- 初学C#+ASP.NET+Oracle时积累的备忘点滴
- [刘巍]由C#风潮想起的-给初学编程者的忠告
- 由C#风潮想起的——给初学编程者的忠告
- 由C#风潮想起的-给初学编程者的忠告
- 初学asp.net (c#)的一些体会
- 初学C#把需理解的东西记下勉来回翻书本了
- C#中类的继承问题01