作者name2name2 (yang~hi)
看板C_Sharp
标题Re: [问题] 不知要怎麽找关键字..
时间Tue Jun 28 16:08:52 2016
详细说一下过程好了,
整个区块中的data都代表同一个变数也只有一个变数,
整个程式码只是在让data这个变数的值变动而已,
变数可以想成篮子,值可以想成物品,
所以整个区块中的篮子都是同一个,
程式只是把蓝子里的东西换成不同物品而已
所以从头到尾名称为data的这个篮子只有一个而已
1F:推 name2name2: string data = "ABCDE@12345";06/28 12:29
这边设一个变数叫data,
(创造一个叫做data的篮子)
然後用等号把 "ABCDE@12345" 这个字串质赋值给data这个变数,
(把"ABCDE@12345"这个东西放进data这个篮子)
所以现在data这个变数的值是 "ABCDE@12345"
(data这个篮子里装的物品目前是 ABCDE@12345)
2F:→ name2name2: data = data.Substring(6); 06/28 12:30
接下来这行程式会先做等号右边的动作,
目前data的值是ABCDE@12345
所以右边会对data的目前值ABCDE@12345
去做Substring(6) 会得到 12345 这个字串值
所以右边的动作结果会得到一个纯字串值"12345"
然後等号会把右边做好的结果"12345"这个值
赋值给data本身,
赋值的意思相当於覆盖,
以篮子物品来说赋值就是把篮子里原本的东西换成另个东西,
所以
等号会
把data原本的值ABCDE@12345
改成右边的结果值也就是 12345
所以现在data的值变成12345了
3F:→ name2name2: Console.WriteLine(data); //得到12345 这样? 06/28 12:30
最後印出目前data值
4F:推 aacced: 数字前面固定是@吗? 06/28 14:31
5F:→ aacced: data = data.Substring(data.Indexof("@", 1) + 1); 06/28 14:31
这边等号右边内层括号里的动作最先做,
data.indexof(@)会取得"@"这个符号所在的位置,
+1就再把位置+1,
所以外层括号最後结果就是得到@的位置+1 (+1就是下一个字元的位置),
也就是1所在的位置,
然後整个substring就从1这个位置往後切到字串结尾,就得到12345
可以见
https://msdn.microsoft.com/zh-tw/library/system.string.indexof(v=vs.110).aspx
6F:→ kkokking: name大,感谢!!加了第二行,data之後就会自动省略前面英 06/28 15:17
7F:→ kkokking: 文吗? 06/28 15:18
算是把data的原值ABCDE@12345
覆盖成substring得到的切割字串结果12345
省略这个动作是substring做的
substring
https://msdn.microsoft.com/zh-tw/library/system.string.substring(v=vs.110).aspx
https://msdn.microsoft.com/zh-tw/library/hxthx5h6(v=vs.110).aspx
https://msdn.microsoft.com/zh-tw/library/aka44szs(v=vs.110).aspx
(若有误请再指教,谢谢~)
--
~
Sent from my
PCMan Combo ~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.36.98.251
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1467101344.A.6FC.html
※ 编辑: name2name2 (114.36.98.251), 06/28/2016 16:12:20
8F:→ name2name2: 补充 可以下这个关键字 第一个结果点进去 06/28 17:11
10F:推 kkokking: N大谢谢你不辞辛劳得写那麽详细,我P币若是够多.....就.. 06/28 17:40
11F:→ kkokking: 送N大了!!已解决问题,也得到详细的解说,真的非常感谢^^ 06/28 17:41
~不客气!
※ 编辑: name2name2 (114.36.98.251), 06/28/2016 20:07:28