C#学习笔记一

翻译 2015年07月10日 22:54:01

1 string类型变量都是不可变的。你不能修改变量最初引用的数据,只能重新对变量进行赋值操作。

 

public static void Main(string[] s)
{
  string str = "123";

  Console.WriteLine(str);//输出123
  ChangeString(str);
  Console.WriteLine(str);//输出123
}

public static void ChangeString(string s)
{
  s = "HaHa";
}

 

因为在C#string对象是不变对象,假设有string str1=”abc”;那么如果存在有这么一条语句对str1进行再次赋值,如str1=”123”;那么指向str1的栈的地址并没有发生改变,而是在托管堆里重新创建一个新的对象,其值为123,而str1的栈指向托管堆里123的地址,而原先的abc即将会被垃圾回收机制清理掉,所以ChangeString函数里对形参s赋值过程是这样子的:形参s首先也指向abc,但在函数体里s又被指向了HaHa,那么此时是s改变了指向,而实参str并没有改变它原来的指向abc。所以要想在函数里改变实参的值必须用ref,除对象和集合外。

 

字符串是不可变的,也就是说,无论你对一个字符串做任何操作(增加字符、删除字符。。。),都不会改变它的值。问题是,我们不能改变它的值怎么操作字符串呢?解决方法就是创建一个新的字符串,把操作结果赋值给这个新的字符串

 

 

从控制台获得输入:

获取用户在控制台输入文本的一种方法是使用System.Console.ReadLine()。此方法将暂停程序执行,以便用户输入字符。一旦用户按回车创建新的一行,程序就会继续执行。System.Console.ReadLine()方法的输出,也称为返回值(return),就是用户输入的文本字符串。

static void Main(string[] args)

        {

            string firstname;

            string lastname;

 

            Console.WriteLine("Hey You!");

            Console.Write("Please input your first name:");

            firstname = Console.ReadLine();

            Console.Write("Plaease input your last name:");

            lastname = Console.ReadLine();

 

            Console.WriteLine("Your firstname is " + firstname);

            Console.WriteLine("Your lastname is " + lastname);

 

            Console.ReadKey();

        }

 

控制台输出使用索引占位符:

例子:Console.WriteLine(“Your full name is {0},{1}”,firstname,lastname);

占位符除了能够在格式字符串中按任意顺序出现之外,同一个占位符还能在一个格式字符串中多次使用,另外,也可以忽略掉一个占位符。然而,每个占位符都必须对应一个参数,不能使用没有对应参数的占位符。

 

 

C#学习笔记

  • 2017年08月08日 16:55
  • 34KB
  • 下载

C#从入门到精通 学习笔记

  • 2014年10月29日 20:57
  • 28KB
  • 下载

C#学习笔记(9)—–多线程基础(下)

C#5.0基于任务的异步模式处理异步工作时,任务提供了比线程更好的抽象。任务自动调度为恰当数量的线程,而且大型任务可由多个小任务组成,就和大量程序由多个小方法组成一样。 但任务有自己的缺点。其中最麻...

遗传算法学习笔记_C#

  • 2014年09月15日 19:20
  • 17KB
  • 下载

C#学习笔记09练习题和答案

  • 2013年08月01日 16:11
  • 49KB
  • 下载

c#学习笔记(1)GridView问题

在网上我查到了两种解决办法 一种是: 在RowCreated事件中书写如下代码 Public void myTestFunction() { string conString="....";/...

C#学习笔记06练习题和答案

  • 2013年07月29日 21:22
  • 220KB
  • 下载

C#的Sql server学习笔记

  • 2015年08月10日 10:28
  • 17KB
  • 下载

C#学习笔记27——WorkFlow

传统ERP为制造业企业产供销人财物的管理提供了一整套优化企业资源利用,集物流、信息流、资金流为一体的现代化管理工具。但是它在过程集成和企业间集成方面存在不足。具体表现在:    1.传统ERP是一个面...
  • byxdaz
  • byxdaz
  • 2011年09月04日 12:23
  • 13402

C#-学习笔记

  • 2014年10月31日 15:23
  • 1.3MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#学习笔记一
举报原因:
原因补充:

(最多只允许输入30个字)