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

看板C_Sharp (C#)作者 ( )時間11年前 (2014/01/08 09:04), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《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 方法裡面是怎麼定義的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.146.145

01/08 09:06, , 1F
補充:這邊都沒看到uk,dx,dy宣告,可能在外層就先宣告好了
01/08 09:06, 1F
文章代碼(AID): #1IpAGp3T (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1IpAGp3T (C_Sharp)