查看: 1024|回复: 2

【零基础自学C#】第2节

[复制链接]

签到天数: 299 天

连续签到: 1 天

[LV.8]以坛为家I

163

主题

5829

积分

484

支持

微软核心粉丝

发表于 2017-8-3 14:45:27 | 显示全部楼层 |阅读模式
零基础自学C#的第一节请见:
http://bbs.wfun.com/forum.php?mo ... 991887&pid=16898475

本系列的大部分内容来自:
https://www.microsoft.com/net/tutorials/csharp/getting-started




上一篇文章讲到命名空间里面可以包含接口结构枚举委托。这一篇文章,先从开始。

请准备好上一篇文章提到的12行代码:

[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}


以下内容来自:https://www.microsoft.com/net/tu ... started/hello-world
声明一个类

在代码的第5行,创建了以“Program”为名称的。第3行声明了以“ConsoleAppForWfun”为名称的命名空间,因此Program“存放在”命名空间ConsoleAppForWfun中。

[C#] 纯文本查看 复制代码
class Program


定义了这个类以后,你可以在代码里面找到它:

屏幕截图(36).png

除了第1行的using指令外,由于第3行声明命名空间,因此在这篇.cs文档中,省略“ConsoleAppForWfun”也可以找到Program。

屏幕截图(37).png

有时,在class的前面,会加一个关键词,例如:

[C#] 纯文本查看 复制代码
public class Program


对于本例而言,可用的关键词有:
public
internal

对于未添加关键词的类,编译器会给它加上一个看不见的默认关键词。对于本例而言,默认的关键词是internal。

这些关键词会限定这个类的可访问性。此处先省略不讲。

函数

如果你还没有忘记高中数学的知识,你应该还记得这种写法:
y=f(x)
f(x)就是一个函数。x是一个数值,经过计算以后,f(x)也是一个数值。x称为自变量,y称为因变量。
在C#中,函数并不一定以数值作为自变量,以数值作为因变量。“自变量”称为参数,“因变量”称为返回值
参数的类型有以下几种:接口结构枚举委托
返回值的类型有以下几种:接口结构枚举委托void(表示不返回值)。
一个函数可以有1个参数,也可以有多个参数,也可以没有参数。但是一个函数必须仅有一个返回值。
在代码的第7行,定义了一个函数。

[C#] 纯文本查看 复制代码
static void Main(string[] args)


static是一个关键词,表示这个函数是静态函数,此处先省略不讲。我们先看看后面的部分:

void表示返回值的类型,string[]表示参数的类型,args表示参数。

什么?string[]是参数的类型?不是只有接口结构枚举委托5种吗?

的确如此,string是的一种,而string[]表示数组。此处先省略不讲。

在static的前面(如果没有static,在返回值类型的前面),可以包含一个关键词来指定这个函数(也称为方法)的可访问性。可用的关键词有:
public
protected
internal
protected internal
private

类的成员

一个类中,可以包含多个成员。以下代码:

[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}


表示Main方法是类Program中的一个成员。

入口点

在.NET Core模板的控制台应用程序中,Main方法是该程序的入口点入口点表示应用程序启动时首先将要执行的代码。

语句

在一个方法中,可以写很多个语句。每个语句末尾用分号“;”结束。在本例中,只写了一个,在代码的第9行:

[C#] 纯文本查看 复制代码
Console.WriteLine("Hello World!");


语句只有5种形式:赋值调用自增自减初始化
上面的语句用的是第2种。它调用了System命名空间下的Console下的WriteLine方法参数"Hello World!"的类型是string。

以下内容来自:https://www.microsoft.com/net/tu ... ted/types-variables
变量

在一个方法的内部,可以声明一个变量变量接口结构枚举委托5种。

内置的变量类型

C#内置了很多常用的变量类型。具体如下:
bool 结构 值的范围:true/false
byte 结构 值的范围:0到255
sbyte 结构 值的范围:-128到127
char 结构 值的范围:Unicode字符
int 结构 值的范围:-2147483648到2147483647
uint 结构 值的范围:0到4294967295
long 结构 值的范围:-9223372036854775808 到 9223372036854775807
ulong 结构 值的范围:0到18446744073709551615
short 结构 值的范围:-32768到32767
ushort 结构 值的范围:0到65535
demical 结构 精度:28位,值的对数(log(10,n))范围是-28到28
double 结构 精度:15到16位,值的对数(log(10,n))范围是-324到308
float 结构 精度:7到8位,值的对数(log(10,n))范围是-45到38
string 表示字符串,字符串由一系列的char构成

结构类型中,float、double、demical都是浮点数类型,这意味着可以赋值为小数,但当数据的有效数字超过相应的精度的时候,它会损失一些精度。例如,float类型的1000000000-1的结果是1000000000,而不是999999999。
除了bool以外,其它结构类型为整型,不会损失精度,但必须为整数。

声明变量

声明变量的例子如下:

[C#] 纯文本查看 复制代码
bool a;
byte b;
char c;


可以在方法里面声明变量。
[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static void Main(string[] args)
        {
            string str;
            Console.WriteLine("Hello World!");
        }
    }
}

以上表示在Main方法中声明了以str为名称的类型为string的变量。在方法中声明的变量,称为局部变量
C#要求声明了局部变量以后,必须赋值,然后才能使用。
刚刚提到,语句有5种形式:赋值调用自增自减初始化
我们将用到的是赋值语句。
[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static void Main(string[] args)
        {
            string str;
            str = "Welcome to C#!"
            Console.WriteLine("Hello World!");
        }
    }
}

声明变量与赋值语句可以合并。
[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "Welcome to C#!"
            Console.WriteLine("Hello World!");
        }
    }
}

那么,赋值语句和调用语句是否可以合并呢?

使方法返回值

我们在类Program里面,再定义一个方法,使它的返回类型为string。

[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static string GetStr()
        {
            return "Welcome to C#!";
        }

        static void Main(string[] args)
        {
            string str = GetStr();
            Console.WriteLine("Hello World!");
        }
    }
}


(该方法需要是静态的,此处先不解释。)
可以看到,当一个方法的返回值类型不是void的时候,需要用return语句使这个方法返回一个值。str = GetStr(),这和高中数学的y=f(x)是不是很像呢?
string str = GetStr(),这条语句把变量声明、赋值语句、调用语句合并到了一起。
当变量赋值以后,就可以在其它语句中使用它。比如:
[C#] 纯文本查看 复制代码
using System;

namespace ConsoleAppForWfun
{
    class Program
    {
        static string GetStr()
        {
            return "Welcome to C#!";
        }

        static void Main(string[] args)
        {
            string str = GetStr();
            Console.WriteLine(str);
        }
    }
}


单选投票, 共有 7 人参与投票 查看投票参与人

投票已经结束

100.00% (7)
0.00% (0)
您所在的用户组没有投票权限

签到天数: 39 天

连续签到: 1 天

[LV.5]常住居民I

1

主题

2615

积分

365

支持

发表于 2017-8-3 15:55:34 来自手机 | 显示全部楼层
console.readline();
应该先将注释。
[你知道吗]:

签到天数: 243 天

连续签到: 33 天

[LV.8]以坛为家I

11

主题

687

积分

1

支持

发表于 2017-8-5 08:57:37 来自手机 | 显示全部楼层
不错,很明确了

来自:Lumia 950 XL Win10旗舰-智机社区客户端
[你知道吗]:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

         

网站地图| 小黑屋|京ICP证150706号|京B2-20160045| 京公网安备11010802018258号

Powered by Discuz! X3.2 / Copyright 2010-2017 © 智机网 WFUN.COM Inc. All rights reserved.

快速回复 返回顶部 返回列表