上午寫了個提cad pl拐點的程式,很簡單,但是遇到提示選擇時用esc取消cad就會報錯。程式如下:
**
using system;主程式沒有問題,程式中能報錯的地方只有if (sr.status == promptstatus.ok & sr.value.count != 0)using
system.text;
using
using
autodesk.autocad.runtime;
using
autodesk.autocad.databaseservices;
using
autodesk.autocad.editorinput;
using
autodesk.autocad.geometry;
using
system.io;
[assembly:commandclass(
typeof
(提拐點座標.class1))]
/**/
namespace
提拐點座標
public
void
terminate()
editor ed ==
="gd"
)]public
void
test()
;promptselectionresult sr
=ed.getselection(ps,
newselectionfilter(filter));
if(sr.status
==promptstatus.ok
&&sr.value.count !=0
)}sw.close();
system.diagnostics.process.start(
"notepad.exe",
@"c://點座標.txt");
} }}
finally}}
}
這句,如果選擇被取消sr.status應該為promptstatus.cancel,sr.status == promptstatus.ok 這句沒有問題,如果有問題就可能出現再sr.value.count != 0這句。即如果程式判斷出sr.status == promptstatus.ok為false仍然要執行
sr.value.count != 0這句的話cad就會報錯。
檢視msdn上關於「&」的解釋為:&運算子計算兩個運算子,與第乙個運算元的值無關。
再檢視關於「&&」的解釋:
x && y
對應於操作
x & y
不同的是,如果x
為false,則不計算y
(因為不論y
為何值,「與」操作的結果都為false
)。這被稱作為「短路」計算。
不能過載條件「與」運算子,但常規邏輯運算子和運算子 true 與 false 的過載,在某些限制條件下也被視為條件邏輯運算子的過載。
乙個小程式重新透視C語言Switch語句
最近看berkerly db的源 在hash函式的hash4中一段 讓我很困惑,將其簡化如下 ctest.c void testswitch int sw while loop int main 程式的輸出為 case 4 3 case 3 3 case 2 3 case 1 3 case 0 2 ...
乙個java小程式
能讓阿拉伯數字讀成符合漢語語法和漢語習慣的中文.就這我 還做了一天呢 鬱悶.public class itcs string unit1 new string string unit2 new string string str args 0 string str 2 null system.out...
乙個socket小程式
一直對c c 下的socket程式設計必是很熟悉,今天終於完成了乙個很簡單的server client程式 伺服器 include include pragma ment lib,ws2 32.lib using namespace std const int my error 1 int main...