c# urlencode空格变成+_30分钟学会 C# 编程

知乎视频​www.zhihu.com

一、 编程环境

1. 首先我们要找一个可以编程的地方,入门的话我们就不需要那么麻烦,亲自配置编程环境了。

2. 在百度搜索:在线编程编程中国,找到 在线编程-编程中国打开这个网页。

3. 左边的框是我们编写程序的地方,右边的框是程序运行结果

4. 在语言选项中找到C#语言,(数到第5个,点击c#)我们就可以这里运行c#代码了,

5. 点击右上方的运行按钮,运行后的结果就会出现在右边的框中。

二、输出、数字、字符串

1. 我们把这些代码都删除,先不要管这些代码是什么意思,后面会讲到。。

using System;  

namespace bccn {
 	class Program 	{
 		static void Main(string[] args){ 



			 			 			 			
 	        }       
        }  
} 

2. 在c#中可以计算加减乘除法,在代码框中输入:Console.WriteLine(2+3);,不要忘了中间的点,和末尾的冒号,CWL是大写。

3. console是控制台的意思,writeline是写的意思,Console.WriteLine(2+3);你可以理解为:输出的意思,括号中的内容就是要输出的结果

Console.WriteLine(2+3); 

点击右上方的运行按钮,会输出括号中:2+3 的计算结果:5。

如果你在其它编程环境下的话,你在下面还要打上:Console.ReadLine();

Console.WriteLine(2+3); 
Console.Read(); 

4. 也可以输出一句话,在代码框中输入:console.WriteLine(“abc”),点击右上方的运行按钮,运行结果是:abc,我们把双引号中的内容叫做:字符串。

字符串就是一堆字母符号,字符串要用双引号或单引号括起来,数字不用,

// 两个斜杠后面的字是注释,程序不会执行它,它不是程序是注释

"abc"   //双引号中的内容叫做字符串 

5. 注意:

代码中的所有标点符号必须是切换到英语状态下的符号,如果是中文状态下打出的代码是错误的。

abc 上的双引号也必须是切换到英语状态下的,数字不需要双引号,但是字母、符号、句子都必须要带上双引号。

d6bfcac23bd65fda49b2bf9e76c929f0.png

三、变量

1. 我们来介绍一下变量,在代码框中输入:先是int, 下来是空格,a是变量的名字,然后是a的值123

int a = 123; 

2. 我们可以把变量a比较 一个"箱子",我们在这个箱子 a 中放入数字 123, 这里的 a 就是一个变量,int就是声明这个变量里放的是一个整数

e4575c2dabad07772c59a186e643ce81.png

3. 我们也可以在 a 中放入字符串:bbb, string就是声明这个变量里放的是一个字符串, 在代码框中输入:

string a = "bbb"; 

4. 输出这个变量:a ,变量也没有双引号,点击运行,就可以输出a的值:bbb

Console.WriteLine(a); 

5. 这里的 a 是变量的名字,变量的名字可以随便起,但不能是数字或者符号。

int g = 234; 
Console.WriteLine(g); 

6. 变量之间可以相加减,其实就是a的值1,加上b的值2,等于3

int a=1; 
int b=2; 
Console.WriteLine(a+b); //返回 3 
演示 
Console.WriteLine(1+2); 
Console.WriteLine();  //会自动换行 
Console.Write();      //不会换行 

四、数组

1. 我们来介绍一下数组,在代码框中输入:

{3, 23,100}; 

数组是用花括号括起来的,每个数据之间用逗号隔开,

2. 数组也可以比作一个箱子,在这个箱子中可以放入多个数字、字符串、变量……,不像变量只能放一个数据。

e4575c2dabad07772c59a186e643ce81.png

3. 把这个数组放入 变量 a 中。int[]意思是这个数组a中的数据都是整数。

int[] a = {3, 70,100}; 

string[]意思是这个数组b中的数据都是字符串。

string[] b = {"a","b","c"}; 

4. 数组中每个值都有一个自己的位置序号,这个位置的序号是从0开始的

5a04134affe5da605410a2a9ecb94b68.png

5. 所以3的位置是0,abc 的位置是1,100的位置是2.

6. 我们可以根据列表中值的位置是2,可以单独把这个值100从列表中拿出来

a[2]; 

7. 比如我们想单独把列表中的100拿出来,先写出列表的名字a,在a的后面写上100的位置的序号2,给这个2加上方括号

8. 然后我们运行输出

Console.Write(a[2]); 

五、比较符和布尔

1. 我们可以用代码判断数字的大小,比如判断一下 2 是不是小于 1,输入:

Console.WriteLine( 2 < 1 );  //返回 fasle 

2. fasle的意思是假,你可以理解为是错的意思,说明 2 小于 1 是错误的。

3. 我们再判断一下 2 是不是大于 1,输入:

Console.WriteLine( 2 > 1 );  //返回true 

4. true的意思是真,你可以理解为是正确的意思,说明 2 大于 1 是错误的。

5. 我们再判断一下 2 是不是等于 1,输入:

Console.WriteLine( 2 == 1 );  //返回false 

6. 我们知道a = 2表示在变量 a 中放入一个2,两个等号==连在一起用就不是这个意思,

两个等号连在用,是比较左右两边的值是否相符,就是看看2是不是等于1。

4052122d149b6a8f955f89e774d95080.png

六、条件语句if,就是给出一个条件,条件满足了,就执行后面的代码块,条件不满足就不会执行后面的代码。

if (条件) {
     if 条件成立时执行的代码; 
} 

1. 我们介绍一下 if 语句,输入:if 圆括号 a<10,花括号,回车键,下面会自动空出四格,console.log(233),中间的点不要忘了。

简单 来说就是:圆括号里的代码说的对,我就执行后面花括号中的代码,如果圆括号里的代码说的不对,我就不执行后面花括号中的代码,

int a = 3; 

if (a<10){
     Console.WriteLine(233); 
} 

2. if 是如果的意思,如果 if 后面圆括号中的代码a<10成立,就会执行花括号中的代码print(233),如果不成立就不执行花括号中的代码

演示图 
if(3<10){
     Console.WriteLine(233); 
} 

3. 这 段代码的意思是:如果a 小于10,那么就输出 233,a是 3,3 小于 10,所以就会输出233

4. 如果我们把 a 的值改为 11,a现在变成了11,11大于 10,所以就不会输出233

演示图 

if(11<10){
     Console.WriteLine(233); 
} 

5. 下面接着输入:

else if(a == 1){
     Console.WriteLine(244); 
} 

6. else if 是再如果的意思,再如果a 等于1,那么打印 244,a是 1,不等于 10,所以就不会打印244

7. 接着输入:

else{
     Console.WriteLine(255); 
} 

8. else是否则的意思,如果上面的所有条件都不成立,那就执行:print(255)这条代码。

int a = 3  

代码执行过程演示图 
如果圆括号中的代码成立就执行花括号中的代码,
如果不成立就不执行花括号中的代码 

if(3<10){                       如果a小于10                
      Console.WriteLine(233);   输出233 
} 
else if(3 == 1){                再如果a小于10                
     Console.WriteLine(244);    输出244 
} 
else{                          如果上面所有的条件都不成立
     Console.WriteLine(255);   输出255 
} 
if (条件1) {
     if 条件1成立时执行的代码; 
} 
else if (条件2) {
     els eif 条件2成立时执行的代码; 
} 
else {
     上面所有的条件不成立时执行的代码; 
} 

七、循环语句,就是可以多次重复执行同个一块代码

圆括号里的代码说的对,我就执行后面花括号中的代码,花括号中的代码执行完后,我再回来看看圆括号里的代码说的对对,对的话,我还要执行花括号中的代码。

直到圆括号里的代码说的不对为止,我才停止执行后面花括号中的代码,

while (条件) {
     while 条件成立时重复执行的代码; 
} 


1 输入下面的代码:

int a = 1; 

while(a<4){
     Console.WriteLine("abc ");
     a = a + 1; 
} 

2. while 圆括号 a<5,花括号,回车键,下面会自动空出四格,Console.WriteLine("abc ");abc后面空一格

3. while 是 当 的意思,如果 while 后面的代码a<4成立,就会重复执行下一行代码Console.WriteLine(“abc”),直到while 后面的代码a<4不成立才会停止。

4. 这个和 if 语句有点像,只是冒号后面的代码Console.WriteLine(233)会重复多次执行。

5. 我们有什么办法让它自动停下来,我们可以在Console.WriteLine(233)下面再加上 a = a + 1

6. a = a + 1的意思是每重复执行一次,a 就会增加1,

7. 当a加到5 时,a<5的条件就不满足了,循环便会停止。

这是代码执行时的过程演示,不是真正的代码

int a = 1;   

循环过程示意图:  

第一次循环 
while(1<4){                       
     Console.WriteLine("abc");
     2 = 1 + 1; 
}  

第二次循环 
while(2<4){
     Console.WriteLine("abc");
     3 = 2 + 1; 
}  

第三次循环 
while(3<4){
     Console.WriteLine("abc");
     4 = 3 + 1; 
}  

第四次循环 
while( 4<4 ){
     Console.WriteLine("abc");
     5 = 4 + 1; 
} 

八.、我们也可以用 for 循环语句来重复执行一段代码。

for (条件) {
     for 条件成立时重复执行的代码; 
} 

1. 先是一个for,然后是圆括号,接下来是在圆括号内的一个整数类型4 变量a,

变量的值是1,下来是一个分号,比较一下a是不是小于4,还是一个分号,让a增加1,

接下来是一个花括号,回车键,下行自动空出四格,最后打印出 abc,abc后面空一格

for( int a = 1; a < 4; a = a + 1 ){
     Console.WriteLine("abc"); 
} 

2. 这段代码的意思 是:当变量a小于4这个条件满足的时候,就会重复执行花括号中的代码:

Console.WriteLine("abc");

当变量a小于4这个条件不满足的时候,就停止执行。并且每重复执行一次,变量a就会增加1

for( int a = 1; a < 4; a = a + 1 ){
     Console.WriteLine("abc"); 
} 
循环过程演示:  

第一次循环 
for( int a = 1; 1 < 4; 2 = 1 + 1 ){
     Console.WriteLine("abc"); 
}  

第二次循环 for( int a = 2; 2 < 4; 3 = 2 + 1 ){
     Console.WriteLine("abc"); 
} 

 第三次循环 
for( int a = 3; 3 < 4; 4 = 3 + 1 ){
     Console.WriteLine("abc"); 
}  

第四次循环 for( int a = 4; 4 < 4; 5 = 4 + 1 ){
     Console.WriteLine("abc"); 
} 

3. 代码块:代码块就是把多行代码放在一个封闭的区域内一起执行。

一个if语句是一个代码块,一个循环语句也是一个代码块,一个函数也是一个代码块。

一般来说一个花括号括内的区域就是一个独立的代码块。

九、类,我们也可以把类比作一个模型,可以根据这个模型(类)来制造出具体的产品,我们把具体的产品叫作对象或者实例。

比如说我们可以先在图纸上设计一座房子的模型,我们可以根据这个房子的模型(类)来建造出一座真实的房子,

bae3e971538e04995a0270b2be75806f.png

我们把图纸上的房子模型叫做类,把根据图纸建好的房子叫做这个类的实例

对房子的的类a来说:它有长和宽,还可以根据面积公式算出它的面积。

实例对象就是一个真实存在的房子,它有具体的边长4,有具体的宽3。

efd3021d303b8404a512f9e6a85d866b.png

1. 我们准备定义一个房子的类,先是一个class,class就是类的意思, 然后空一格,类的名字a,花括号,

我们在类a 里有一个变量c, public的意思公开,就是在别的类里面还可以访问这个变量b,比如说在program类中也可以访问这个变量b。

现在我们知道 class program其实也是一个类。

变量c就是这个房子的长。

变量k就是这个房子的宽。

using System;  
namespace bccn {
     class a{
         public int c;
         public int k;
}      	

    class Program{
 		static void Main(string[] args){
 		    a a1 = new a();
                    a1.c = 4;
                    a1.k = 3;
                    Console.WriteLine(a1.c);
 		} 	
    } 
} 

new a()就是根据模型a创造了一座真实的房子,我们把这个真实的房子放入在名字叫a1的变量中,a1的变量的类型是 a.

有点像设置变量时在变量前加一个类型int c,意思是变量c的类型是int类就是整数类。


2. 在program类中我们可以根据a类创造一个真正的房子a1,

a a1的意思 就是a1的类型是a类,有点像设置变量时在变量前加一个类型int c,意思是变量c的类型是int类就是整数类。

new 就是新创造一个具体的房子(实例),这个具体的房子a1的长c是4,这个具体的房子的名字叫a1。

a就是一个类,a1就是这个类的一个实例。

3. 我们还要设置变量c和k的值,a1点c,可以理解为a1的c,

就是真实房子a1的长c是4,真实房子a1的宽k是3,

如果你写c =4,k=3,就是错的。

a1.c = 4; 
a1.k = 3; 
Console.WriteLine(a1.b); 

5. 我们可以用方法计算出这个长方形的面积长C乘以宽K,如果我们学过其它编程语言,就会知道其实m就是一个函数

public int 方法名(参数1,参数2) {
      return 返回值 
}  

public int 机器名(原料1,原料2) {
     出料口  产品 
} 
public int m(  ) {
     return c*k; 
} 

我们可以把方法比作一台机器,这机器里可以放入多个代码块一起执行,比如可以放入变量、数组、if条件语句、循环语句……。

f58bfe0efebd21812c6817b1fe4f3389.png

public是指这个机器是可以被其它类调用,int关键字是指这个机器的产品是个整数,如果把int 改为void,就表示这个机器没有产品。

m是这个机器的名字()就是机器的入料口,可以向这个机器的入料口添加原料,也可以不添加。

花括号内就是机器的具体的运行过程,return是返回的意思,return 后面就是要生产出的产品c乘以k,就是长乘以宽,也就是这个长方形的面积。

6. 然后我们就可以在program类中通过方法m得到这个长方形a1的面积了。

我们要使用这个计算面积的机器,就要打开这个机器的开关,打开这个机器的方法就是:a1.m(),

a1.m(),a1.m可以理解为a1的m机器,()可以理解为这个机器的入料口,由于这个机器不需加入原料,所以()是空的。

a1.m(); 

7. 下面是不是标准代码,是演示。把a1.m(),放入program类,就等于在program中起动了这个机器,

代码执行过程演示 

public int m(  ) {
             return 4 * 3; 
} 

8. 我们可以输出这个方法的返回值

class Program {
 		static void Main(string[] args){
 		    a a1 = new a();
 		    a1.c =4;
 		    a1.k = 3;
 		    Console.WriteLine(a1.m());
 	       } 	
} 

9. 我们也可以在变量c和k初始化的时候设置它们的值

public int c=4;  
public int k=3; 

10. 我们也可以在其它类中直接修改c和k的值

a1.c =10; 
a1.k =7; 
using System;  

namespace bccn {
     class a{
         public int c=4;
         public int k=3;
         public int B(){
             return c*k;
         }
     }

     class Program{
         static void Main(string[] args){
 	     a a1 = new a();
 	     a1.c =10;
             a1.k =7;
             Console.WriteLine(a1.B);
 	}
    } 
} 

11. 如果我们不想让在其它类中访问c和k,可以把public改为private,public是公开,private是私有,

private int c=4; private int k=3; 

变量前有private关键字的是私有变量,只能本类才能访问,其他类都访问不了,

Console.WriteLine(a1.c);  //会报错 

Console.WriteLine(a1.k); 

12 如果我们想在其它类中访问到私有变量c,可以用使用方法来访问

public是指这个方法可以在其它类中被调用

void是指这个机器没有产品,就是这个方法没有返回值。括号中的c1就是原料,int 是指这个原料是整数,我们把这个原料叫做参数。

我们把这整数c1传给了私有变量c。

using System;  

namespace bccn {
     class a{
         private int c;  //私有变量
         public int k;   //公开变量

         public void setc( int c1 ){
             c = c1;
         }              
         public int getc(){
          return c;
         }
    }
    class Program{
 	static void Main(string[] args){
                a a1 = new a();
                a1.setc(4);
                a1.k = 3;
                Console.WriteLine(a1.getc());
                Console.WriteLine(a1.k);
        }
    } 
} 

13. 在初始化的时候,为类里面的变量一个一个的赋值很方麻烦,我们可以使用构造函数就简单的多了。

构造函数的名字要和类的名一样都是a。

这样在new的时候就可以直接把参数写在括号中a(4, 3),不用一个一个的赋值。

using System;

namespace LineApplication {
    class a{
        public int c;
        public int k;
        public a(int c1, int k1){
          c = c1;
          k = k1;
        }
        static void Main(string[] args){
            a x = new a(4, 3);
            Console.WriteLine(x.c);
            Console.WriteLine(x.k);
        }
    } 
} 

14. 类的继承,子类可以使用父类的属性和方法,

using System;  

namespace bccn {
     class f{
         public void f1( ){
             Console.WriteLine("我是父类");
         }
     } 
    
     class z: f{
          public void z1(){
              Console.WriteLine("我是子类");
          }
      }

      class Program 	{
 	  static void Main(string[] args){
 	      z x = new z();
              x.f1();
 	  }
      } 
} 

15. 方法重写,父类方法的功能不能满足子类的需求,可以在子类中重写父类的方法,

using System;  

namespace bccn {
     class f{
          public void f1( ){
              Console.WriteLine("我是父类");
          }
      }

      class z: f{
          public void z1(){
              Console.WriteLine("我是子类");
          } 
          public void f1(){
             Console.WriteLine("我改写了父类的f1方法");
          }
       } 
       class Program{
  	   static void Main(string[] args){
 	       z x = new z()
               x.f1()         //子类使用重写过的父类的方法
               x.z1()         //子类使用自己的方法
 	   }
      } 
}   

16. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问

class f{
     constructor(a) {
         this.a = a;
     }

     get a(){
         return this._a;
     }
     set a(a){
         this._a = a;
     }
} 

let x = new f(2);  
console.log(x._a);  

17. 现在我们知道这也是一个函数或方法。

static说这是一个静态方法,void说这个方法没有返回值,Main是这个函数的名字,括号中的args是参数,string[]说明这个参数是数组

static void Main(string[] args) { 		 

} 

18 .static方法不需要实例化,类可以直接调用

using System;  namespace bccn {
     class f{
          public static void a(){
              Console.WriteLine("我是静态方法");
          }
     } 
       
     class Program{
 	 static void Main(string[] args){
     	     f.a();
         }
     } 
} 

19.namespace是命名空间的意思,你可以把命名空间看作一个文件,这个文件的名字叫bccn。

namespace bccn {      

} 

20. using System的意思是引入c#程序自带的名字叫System的命名空间。

using System 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值