经过整整一天的 debug。。。终于定位到了问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX    C#

经过整整一天的 debug。。。终于定位到了问题

  •  
  •   zxCoder 2021-04-16 19:31:40 +08:00 3467 点击
    这是一个创建于 1653 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最后居然是这个语法的问题,虽然不知道为什么会影响到我的结果。。。。但是问题就是出现在这一段代码上。。。。要去补补基础知识了。。难道这两个有啥区别

    // 对 using(var sw = new StreamWriter(compileScript)) { sw.Write(_submission.Cmd); } // 错 using var sw = new StreamWriter(compileScript); sw.Write(_submission.Cmd); 
    第 1 条附言    2021-04-17 08:21:29 +08:00

    感谢#7 #8楼的回答。。。破案了,第二种写法后面需要马上Flush(如果下面需要需要立即读取该内容的化)

    12 条回复    2021-04-18 07:40:06 +08:00
    liuhan907
        1
    liuhan907  
       2021-04-16 19:39:11 +08:00 via Android
    sw 的作用域不一样,其它没了。
    zxCoder
        2
    zxCoder  
    OP
       2021-04-16 19:41:38 +08:00
    @liuhan907 那就很奇怪了。。。总之这两个写法一换程序就 ok 了。。。 而且 sw 后面也并没有再用到,其他语句我都尽量注释掉了
    Zhuzhuchenyan
        4
    Zhuzhuchenyan  
       2021-04-16 23:04:44 +08:00
    感觉可以再深入一下,根据我的理解这两个语句应该是等价的。

    能否提供一个最小的出现 bug 的情形呢?
    Youen
        5
    Youen  
       2021-04-16 23:15:52 +08:00
    可以反编译一下看看 IL 有什么不同
    Fx8m
        6
    Fx8m  
       2021-04-16 23:40:33 +08:00
    第一个运行完后会清理资源。
    两个应该是一样的效果啊,为什么会出错。
    hyb1996
        7
    hyb1996  
       2021-04-17 01:04:59 +08:00 via Android
    第二个没有立即 flush?
    mingl0280
        8
    mingl0280  
       2021-04-17 01:20:47 +08:00 via Android
    有区别,第二个如果没等到默认的 flush 执行就不会输出,第一个执行完必定带一下 flush+close...
    zxCoder
        9
    zxCoder  
    OP
       2021-04-17 08:20:19 +08:00
    @hyb1996
    @mingl0280

    哎哟我去。。。。真是这个原因。。。恰巧我这个写入的内容在下面需要马上读取。。。。。

    果然靠 IDE 学语法还是有点不太靠谱。。。
    zxCoder
        10
    zxCoder  
    OP
       2021-04-17 14:11:16 +08:00
    @hyb1996
    @mingl0280

    老哥们这个有相关文档说明吗。。。。还是没查到这两者的区别介绍,我又迷惑了
    mingl0280
        11
    mingl0280  
       2021-04-18 03:53:47 +08:00 via Android
    @zxCoder msdn 不是有一段关于 IDisposable 和 StreamWriter 不是线程安全和同步的的说明么?你不看文档的么?
    https://docs.microsoft.com/en-us/dotnet/api/system.io.streamwriter?view=net-5.0
    liuhan907
        12
    liuhan907  
       2021-04-18 07:40:06 +08:00 via Android
    @zxCoder
    结果还真是作用域导致的问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1305 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 16:52 PVG 00:52 LAX 09:52 JFK 12:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86