ふらっとC♯, C#(初心者用) Part19
at TECH
981:デフォルトの名無しさん
07/09/28 20:03:10
>>980
asって値型だと型が合致しなかった場合はdefault(struct)になるんですかね?
982:デフォルトの名無しさん
07/09/28 20:33:06
ならない。
Nullableな値型ならnullが返される。非Nullableな値型ならコンパイルエラー。
983:デフォルトの名無しさん
07/09/28 20:45:28
>>979
Office System 互換機能パックで 2003でもいけた。 hoge.xmlで保存してちょ。
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="URLリンク(www.w3.org)
<Worksheet ss:Name="XmlSheet">
<Table>
<Row>
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell><Data ss:Type="Number">2</Data></Cell>
</Row>
<Row ss:Index="3">
<Cell><Data ss:Type="String">aaa</Data></Cell>
<Cell><Data ss:Type="String">bbb</Data></Cell>
</Row>
</Table>
</Worksheet>
</Workbook>
984:983
07/09/28 20:47:53
あらかじめExcelで雛形作っておいて部分的に書き換えるのがよさそう。
テンプレートエンジンがあれば使えそうだ。
985:デフォルトの名無しさん
07/09/28 22:33:34
つかただのxmlスプレッドシートで事足りんじゃねーの?
986:デフォルトの名無しさん
07/09/28 22:35:01
っていうよりただのxmlスプレッドシート?
互換パックすらいらないんじゃ…
987:デフォルトの名無しさん
07/09/28 22:35:42
>>986
988:デフォルトの名無しさん
07/09/28 23:11:50
>>980
as キャストの方が早いの?
989:デフォルトの名無しさん
07/09/29 00:43:12
次スレ余路。
990:デフォルトの名無しさん
07/09/29 02:08:18
>988
asの方が早いし型が違う場合に例外が飛ばずにnullが返る。
キャストで型が違って例外が飛ぶと結構重いし。
でも、ダウンキャストしなくても済むようにインターフェースを作る方がいいんじゃない?
991:デフォルトの名無しさん
07/09/29 02:51:50
>>980があほなんだろ。
992:デフォルトの名無しさん
07/09/29 02:54:15
>asの方が早いし型が違う場合に例外が飛ばずにnullが返る。
asのが早いってそんな違いがあるの?
例外とぶって飛ばなきゃ使う側でNullReference〜になるかチェックが必要になるわけで
正しい型が入っているはず、という状況なら普通のキャストの方がまだ望ましい動きじゃないかい?
993:デフォルトの名無しさん
07/09/29 03:28:45
>992
正しい型が必ず入ってる場面ではチェックは不要なんだからasの方が速いのでasを使う。
違う型のものが入ってるかもしれない場面でダウンキャストするってのは何か作りがおかしいので考慮する必要ってあんまりないと思うよ。
994:デフォルトの名無しさん
07/09/29 03:41:11
msdnをみるとis演算子の分asの方が命令数が多いように見える。
>as 演算子はキャストと似ていますが、変換エラーの時に、
>例外を発生せずに null を返す点が異なります。次に式の形式を示します。
>expression as type
>これは、次と同じ意味になります。
>expression is type ? (type)expression : (type)null
995:994
07/09/29 03:59:31
IL上は1命令違うだけで差はなかった。
IL_0002: isinst A
IL_0002: castclass A
996:デフォルトの名無しさん
07/09/29 04:09:22
結局asは早くも遅くもないのか
997:デフォルトの名無しさん
07/09/29 04:15:58
じゃあ、Delphiのasはキャストより速いの?遅いの?
998:デフォルトの名無しさん
07/09/29 06:59:24
>違う型のものが入ってるかもしれない場面でダウンキャストするってのは
>何か作りがおかしいので考慮する必要ってあんまりないと思うよ。
だからこそキャストで例外になるようにするんじゃねーかよ。
まあNull参照例外でも似たようなもんではあるけど、
キャスト例外のがまし。
999:デフォルトの名無しさん
07/09/29 07:00:16
>正しい型が必ず入ってる場面ではチェックは不要なんだからasの方が速いのでasを使う。
asの方が早いってのは思い込みじゃねーのか?といってる。
1000:デフォルトの名無しさん
07/09/29 07:08:03
is演算子が面白い。
o is CLASS1 が o as CLASS1 != null と同じコードを吐いている。
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4618日前に更新/255 KB
担当:undef