重粒子的运行轨迹

Compiling ...
baryon.cpp
baryon.cpp(1) : warning C0000: all glory is fleeing
F1:Technology is worthless - even dangerous - if we don't pay attention to the human aspects of both its use and its construction
随笔 - 58, 评论 - 276, 引用 - 0

导航

关于

标签

每月存档

最新留言

  • re: C#3.0

    by 好(匿名) on 2004/10/27 19:39:00
  • re: C#3.0
    超前
    by 超前(匿名) on 2004/10/27 19:38:00
  • re: 动机与价值
    发起人,写的很好
    by 支持(匿名) on 2004/10/27 19:34:00
  • re: 动机与价值
    免费是一种运营模式,嫌钱才是目的,世界上的free是相对的!
    by 波(匿名) on 2004/10/27 19:32:00
  • re: QA
    コンポボックスですかな?わからない。宅急便さんが着たら、相談してもいいよ。
    by 重粒子(匿名) on 2004/10/22 14:58:00
  • re: QA
    連絡するとき、相手は午前中は難しいと言ってた。あとは、いくといわれました。 <br>そして自転車のコンポも必要です。コンポはどう意味ですか。聞いてもわからないです。
    by leptonw(匿名) on 2004/10/22 14:42:00
  • re: QA
    まあ、連絡したね。大丈夫はず。
    by 重粒子(匿名) on 2004/10/22 14:33:00
  • re: QA
    宅急便がもし明日、来られなかったら、困ります。
    by leptonw (匿名) on 2004/10/22 13:54:00
  • re: QA
    送り状については明日、宅急便さんが着たら、書きます
    by 重粒子(匿名) on 2004/10/22 13:29:00
  • re: QA
    削除します
    by 重粒子(匿名) on 2004/10/22 13:27:00
  • re: QA
    借りたときには言ったことがありますよ。
    by 重粒子(匿名) on 2004/10/22 13:27:00
  • re: QA
    bedの件はhuang yanにお知らせしたほうがいいですが。
    by leptonw(匿名) on 2004/10/22 13:14:00
  • re: QA
    メールとか削除しますか?
    by leptonw (匿名) on 2004/10/22 13:06:00
  • re: QA
    先ほど宅急便に連絡時、送り状とか言わなかったですが。
    by leptonw (匿名) on 2004/10/22 13:05:00
  • re: QA
    OK
    by 重粒子(匿名) on 2004/10/22 12:07:00
  • re: QA
    >吉原さんは本社と確認するって言われましたね <br>言いました。また「私から王さんに連絡します。」と言いました。でも今までまだ。私は電話するのがちょっと嫌ですから。
    by leptonw(匿名) on 2004/10/22 11:59:00
  • re: QA
    自転車は処理しませんよ。宅急便に頼みました。
    by leptonw(匿名) on 2004/10/22 11:57:00
  • re: QA
    OK。bedをごみとして処理しますね。どう2階から1階に移動するの? <br>
    by 重粒子(匿名) on 2004/10/22 11:50:00
  • re: QA
    処理します。自転車も?
    by 重粒子(匿名) on 2004/10/22 11:49:00
  • re: QA
    宅急便に頼みました。明日午前中来られますといわれました。 <br>私は自転車より大きな荷物はないと言いましたので。
    by leptonw(匿名) on 2004/10/22 11:47:00
  • re: QA
    粗大ゴミとして処理すれば、一個810円です。処理しますか?
    by leptonw(匿名) on 2004/10/22 11:45:00
  • re: QA
    困る。だめなら、値段無視してね
    by 重粒子(匿名) on 2004/10/22 10:56:00
  • re: QA
    引越しセンターでは自転車は一台、1万円以上かかるそうです。
    by leptonw(匿名) on 2004/10/22 10:49:00
  • re: QA
    だめなら、10000円引越しもあるんです。でも、電話番号わかりません。WEBだけ知ってる。 <br>メールの最後をご覧ください
    by 重粒子(匿名) on 2004/10/22 10:48:00
  • re: QA
    自転車とベッドがちょっと預かりにくいです。どうしましょうか
    by leptonw(匿名) on 2004/10/22 10:46:00

广告

 

zhanbo说他的下一个Quiz会从他的随笔里出题,我就随便翻看了一下他的一些技术随笔,第一个就看到了Perf: Conditional("DEBUG")对性能的影响 这一篇。

我想不好的编码习惯再加上使用这个了ConditionalAttribute会影响到代码的正确性。利用MSDN里的例子举例并评论如下:

using System;
using System.Diagnostics;

class Class1
{
    [STAThread]
    static void Main(string[] args)
    {               
        TextWriterTraceListener myWriter =
            new TextWriterTraceListener(System.Console.Out);
        Debug.Listeners.Add(myWriter);
        Console.WriteLine("Console.WriteLine is always displayed");
       int i=0;

        Method1(++i); //使用++i会导致不可预料的结果,因为根据不同的编译条件,这一行可能不会出现在IL里
        Method2(++i,++i);//上一行的有无会影响这一行里i的值
        //Method1("abc"); 即使根据条件这一行不会出现在IL里,也会在编译时检查参数类型。这会导致编译错误,而不是执行错误。MSDN错误地写成了type-checked at run time
    }
   
    [Conditional("CONDITION1")]
    public static void Method1(int a)
    {
        Debug.Write(String.Format("Method1 - DEBUG and CONDITION1 are specified:{0}\n", a));
        Trace.Write("Method1 - TRACE and CONDITION1 are specified\n");
    }
   
    [Conditional("CONDITION1"), Conditional("CONDITION2")]   
    public static void Method2(int a,int b)
    {
        Debug.Write(String.Format("Method2 - DEBUG, CONDITION1 or CONDITION2 are specified:{0},{1}\n", a ,b));
    }
}

D:\DOTNET>csc /target:exe /d:CONDITION2,DEBUG,TRACE /out:CASCS.exe CAS.cs

上面举例说明了,在分工合作进行开发的情况下,应该避免使用在调用函数的参数里更改变量。因为你的调用命令并不一定会被编译到最终的结果里。会发生看被调用方脸色而定的情况。我们使用 #if 或者 Debug.Write这样的命令都是可以预料结果的,而这个Attribute确让我们心神不定。

推而广之,这个Attribute使得调用方编写的任何函数调用都有可能不翼而飞。如果我写编码规范会禁止使用这个Attribute。

打印 | 张贴于 2004-06-14 15:20:00 | Tag:软件

对不起,本博客主人暂时禁止大家查看或者发表评论,请查看其它博客内容.

Powered by: Joycode.MVC引擎 0.5.2.0