Re: [問題] 請教 null 的用法

作者: tooto1985 ( )   2014-01-08 09:04:48
※ 引述《netsm (小黑)》之銘言:
: 請教各位高手,下面的寫法是甚麼意思?
: 謝謝!
: if (Math.Abs(t - 0.3) < dt / 2)
: {
: write("..\\(2D)u" + filename + ".plt", u);
: write("..\\(2D)uexact_" + filename + ".plt", null);
: }
: //////
: public static void write(string fname, fun ux)
: {
: FileStream fs = new FileStream(fname, FileMode.Create);
: StreamWriter sw = new StreamWriter(fs, Encoding.Default);
: sw.WriteLine("VARIABLES=x, y, u1");
: sw.WriteLine("ZONE T=\"dx={0}, dy={1}\", I={2}, J={3}, F=POINT",
: dx, dy, Ni/2, Nj);
: for (double y = 0; y <= MaxY; y += dy)
: for (double x = 0; x <= MaxX; x += dx)
: {
: double uk=(ux==null)? (exact(t,x,y)): ux.f1(0, x, y, 0, 0, 0);
: sw.WriteLine("{0},{1},{2}", x, y, uk);
: }
: sw.Close();
: }
: 請教: double uk=(ux==null)? (exact(t,x,y)): ux.f1(0, x, y, 0, 0, 0);
: 是甚麼樣的邏輯?
這是三元運算子: 條件 ? true執行 : false執行
uk=(ux==null) 的意思是先判斷 (ux==null) 其結果指派給 uk
所以 uk 是個布林值 , 接下來利用三元運算子
執行 exact(t,x,y) 或 ux.f1(0,x,y,0,0,0)
最後結果會是 double
: 我讀出來的檔案 write("..\\(2D)uexact_" + filename + ".plt", null);
: 只有時間t有值,而x,y皆為零,是否與 null 有關?
我只能說不確定
你必須去看 exact 或 ux.f1 方法裡面是怎麼定義的
作者: tooto1985 ( )   2014-01-08 09:06:00
補充:這邊都沒看到uk,dx,dy宣告,可能在外層就先宣告好了

Links booklink

Contact Us: admin [ a t ] ucptt.com