17/11/02 17:42:00.04 wZG1ntZl0.net
ググって最初のほうに出てくるサイトで char * 以外は全てマーシャってるので
てっきり IntPtr を駆使すると思い込んでました。
配列じゃないポインタ渡しは ref/out で何の造作もなく出来ました。
(マーシャル関連のコードを大量に書いていたのが馬鹿らしくなるほど)
んで配列ですが
// C++(x86)
extern "C" __declspec(dllexport) void test(long a[2]);
// C#
[DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void test(out int[] a);
int[] a = new int[2];
test(out a);
で、バイオレーションエラー出ちゃいます。。。
794:デフォルトの名無しさん
17/11/02 17:52:53.60 oE5JXb4z0.net
>>776
C++側からC#にoutする形で返したいのならC#からポインタにして渡す
そのコードのC#側のout(ref)だと変な動きにしかならない。消せ
795:デフォルトの名無しさん
17/11/02 18:01:00.66 wZG1ntZl0.net
うわぁ、ありがとうございます。
先方で値が書き換わる場合には ref/out を付けないといけない
(付けなかったら配列だろうが値渡しになる)
だと先入観で思い込んでました。
配列だったらC++と同じくポインタ渡しになるんですね!
// C#
[DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void test(int[] a);
int[] a = new int[2];
test(a);
で、うまくいきました。
(C++側で設定された値が戻ってきた)
796:デフォルトの名無しさん
17/11/02 18:34:34.93 OVuNv67Pa.net
>>778みたいな場合、アンマネージド関数の宣言の仮引数にOutAttributeを付ける必要が
あるのかないのか、MSDN読んでもいまいちよく分からん
URLリンク(msdn.microsoft.com)(v=vs.90).aspx
を読むとBittableな型の一次元配列の場合不要のようにも思えるが、
URLリンク(msdn.microsoft.com)(v=vs.90).aspx
のサンプルでは属性がついてる
797:デフォルトの名無しさん
17/11/02 22:14:18.55 FJPOLiu40.net
>>779
そのリンク先に書いてあるぞ
これらの型は、呼び出し元と呼び出し先が同じアパートメントに属する場合には、In/Out パラメータとしてマーシャリングされるように見えることがあります。
ただし、そのような型は実際には In パラメータとしてマーシャリングされるため、引数を In/Out パラメータとしてマーシャリングする必要がある場合には、InAttribute 属性と OutAttribute 属性を適用する必要があります。
Outがないと保証されない
798:デフォルトの名無しさん
17/11/02 22:48:20.45 uoctVHYW0.net
>>778
ref/outは書き換え云々というより変数の参照で初期化の必要があるかどうか、P/Invokeでは構造体くらいにしか使わぬ
配列は参照型なので参照の参照になるし、そのままでもオブジェクトヘッダ+要素数を含むのでネイティブ配列へはちょっとズラしている
>>779
上のページに>>780の通りずばり書いてないか?コピーと固定 # 書式指定された Blittable クラスのメモとかにも。そういう事ではなく?
既定のマーシャリング動作を理解し、MarshalAs属性とIn/Out属性を駆使すれば、Marshalメソッドの出番はあまりなくなる
Marshal.UnsafeAddrOfPinnedArrayElementとかもArrayWithOffsetというお誂え向きな構造体がある
手動でIntPtrを捏ね回すのが有効なケースもあるが。ちぃと古いけど↓の記事はよく纏められている
URLリンク(msdn.microsoft.com)
799:デフォルトの名無しさん
17/11/02 22:54:42.83 vimPIuS6M.net
GCがうざいならstackallocを使う手もあるよ
unsafeになるけど、マネージ配列のマーシャリング使ったとしても境界外へアクセスしたら普通にクラッシュするんだし
むしろ危険な操作は明らかに危険とわかったほうがマシ
800:デフォルトの名無しさん
17/11/02 23:07:34.82 OVuNv67Pa.net
>>780-781
レスどうも
よく分からない箇所は結局、>>780に引用してある部分の
>同じアパートメントに属する場合には
この但し書きかな。
同じアパートメントって何だ?
>>778のケースでは結局Out属性なしでも期待通り動くみたいだけど、
逆にBittableであっても明示的にOutを付けないといけないのはどういう
場合なんだろうか
801:デフォルトの名無しさん
17/11/03 01:31:28.84 zjyHgUY90.net
>>782
stackallocはスタックを理解していなければ危険すぎないか、少量で確保速度が最重要ならアレだけど
unsafeポインターを使うならfixedでも境界チェックは外れるし、そのあたりで…
>>783
アーその辺はCOMの話かな、COMマーシャリングが挟まれると固定では済まなくなるという
URLリンク(msdn.microsoft.com)
具体例については…直接COM使った経験がC++でちょろっとしか無いのでわっかんないや(無能
802:デフォルトの名無しさん
17/11/03 04:43:40.14 ZqwqQq4y0.net
Parallelの動きがわからん
10個のZIPを同時に解凍する処理するとして
Parallel.Forで実行したらどうなる?
ちなcore i7
エラー?
803:デフォルトの名無しさん
17/11/03 09:51:59.78 wXWM393Ar.net
1.5倍(適当)くらい速くなる
804:デフォルトの名無しさん
17/11/03 10:02:10.84 YKGzMcXY0.net
>>785
同時実行数はCPUのスレッド数だから8個同時に展開して、2個は待ちになるんじゃね
CPUより展開後ファイルサイズによってはHDD書き込みがネックになりそうな気もするけど
805:デフォルトの名無しさん
17/11/03 11:00:02.96 QTbHfBOQ0.net
>>787
オイ!
806:デフォルトの名無しさん
17/11/03 15:48:21.85 m874gEkx0.net
>>786
1.5ってすごくいいよ
>>787
動き知りたいんよ
どうなるか
807:デフォルトの名無しさん
17/11/03 15:52:47.69 OoLmNkMra.net
何を期待してるか知らないけどやればいいじゃないか
808:デフォルトの名無しさん
17/11/03 17:10:18.04 bRMk/YPf0.net
c#で画像の黄色部分だけを白にして残りを黒にする様なことはできますか?
809:デフォルトの名無しさん
17/11/03 17:32:15.18 tw8puOLsM.net
>>791
ProcessでImageMagick呼べば一瞬でできる
似た色はどこまで許容するのかとかいちいち個別に作ってたらキリがない
810:デフォルトの名無しさん
17/11/03 18:22:36.00 QTbHfBOQ0.net
DataTable dt = new DataTable();
bool foofunc(ref DataTable dt)
{
・・・・
adapter.Fill(dt);
こんなコード見たんだが何かメリットあるのか?
811:デフォルトの名無しさん
17/11/03 18:28:01.91 tw8puOLsM.net
>>793
それ書いた奴が参照型を理解してないんだと思う
何の意味もないので絶対に真似してはいけない
812:デフォルトの名無しさん
17/11/03 18:37:57.11 QTbHfBOQ0.net
>>794
c#歴10年のヤツのコードなのだ。
当然foofunc内でtry/catchがあり戻り値にエラー有無が返る。
愚痴ってスマヌ。
813:デフォルトの名無しさん
17/11/03 18:41:43.76 lrZzjWeI0.net
>>792
そういうのって、C#でって言うのかな。
814:デフォルトの名無しさん
17/11/03 19:35:14.12 Xp/sMfFK0.net
>>791
最低限の要件だけ勝手に解釈してこんな感じ
URLリンク(ideone.com)
815:デフォルトの名無しさん
17/11/03 19:43:53.45 ZqwqQq4y0.net
imagemagickってソースに組み込める何か提供してるん?
816:デフォルトの名無しさん
17/11/03 19:44:48.34 EmHaDWp+0.net
大昔にマスク画像を作っていたのを思い出した
817:797
17/11/03 20:02:57.12 Xp/sMfFK0.net
ついでに補足しておくとMarshal.ReadInt32でなくMarshal.Copyでバイト配列で4バイトずつ読めば
Blue,Green,Red,Alphaが取れるから許容範囲設定とかしたかったらそっちで
818:デフォルトの名無しさん
17/11/03 20:15:49.55 WHWgtK+kr.net
経験年数と理解度?にどれだけの相関関係があるのか
疑問が生じている今日この頃
819:デフォルトの名無しさん
17/11/03 20:20:24.80 aVxxhWTE0.net
相関関係はある
但し個人差は大きい
820:デフォルトの名無しさん
17/11/03 20:26:05.42 QTbHfBOQ0.net
>>798
URLリンク(www.imagemagick.org)
821:デフォルトの名無しさん
17/11/03 22:49:49.36 om2fc3b00.net
>>793-794
refで渡せば、呼び出し先の関数で、呼び出し元の変数のインスタンスを変更できる
これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて
なんの意味もないわけではない
822:デフォルトの名無しさん
17/11/04 00:09:44.98 3cC+jj+w0.net
>>793のケースで意味がなさそうって>>793,794は言ってるのに、
>これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて
とか一般論を言い出してそのつっこみよくわからん。
823:デフォルトの名無しさん
17/11/04 01:46:45.24 qZ8I6rgd0.net
>>797
ありがとうございます。
ほぼ真っ黒になってしまったのでRGB値で範囲指定できる様にやってみます。
824:デフォルトの名無しさん
17/11/04 04:11:36.08 MnNwpnC60.net
>>804
君も参照型を理解してないね。
825:デフォルトの名無しさん
17/11/04 08:41:31.55 sTeHaJ1X0.net
>>807
この話の流れに>>804がふさわしいかどうかはおいとくとして...
> 君も参照型を理解してないね。
ちょっと説明してみ
826:デフォルトの名無しさん
17/11/04 09:02:47.97 5h9DYzfZ0.net
DataTable dt = new DataTable();
bool foofunc(ref DataTable dt)
{
DataTable dt = new DataTable();
・・・・
adapter.Fill(dt);
「なんの意味もないわけではない」のコードにはなったが
更に輪をかけた馬鹿コードに進化させてみた。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
827:デフォルトの名無しさん
17/11/04 09:17:38.08 5h9DYzfZ0.net
DataTable dt = new DataTable();
bool foofunc(ref DataTable dt)
{
dt = new DataTable();
・・・・
adapter.Fill(dt);
間違えてたw
828:デフォルトの名無しさん
17/11/04 09:19:39.29 flyq3nv80.net
それじゃただのoutじゃんrefの意味じゃないじゃん(難癖
829:デフォルトの名無しさん
17/11/04 09:48:23.86 5h9DYzfZ0.net
>>811
そう、参照型にrefは無意味なのです。
参照型が分かってないよりこのコードが問題なのは、
検査結果を引数に返して実行エラーの有無を戻り値で返していること。
参照型も理解していないが例外処理はもっと理解していない糞野郎のコード。
830:デフォルトの名無しさん
17/11/04 09:51:19.52 5h9DYzfZ0.net
×検査結果
831: ○検索結果 スマン、寝ぼけてるわ
832:デフォルトの名無しさん
17/11/04 10:16:12.92 q474DaJy0.net
>>812
Dictionary.TryGetValue()とかあるし、そこはケースバイケースかな。
参照型にref付けてるくらいだから、何も考えてないのかも知れないけど。
833:デフォルトの名無しさん
17/11/04 10:20:08.20 5h9DYzfZ0.net
>>814
public bool TryGetValue (
TKey key,
out TValue value
)
refじゃなくてoutやないかい!
834:デフォルトの名無しさん
17/11/04 10:29:08.52 q474DaJy0.net
そうだった。>>811とまざった。
こっちも寝ぼけてるねw
835:デフォルトの名無しさん
17/11/04 10:29:22.28 fyiwYE9E0.net
つまり
>>793と
DataTable dt = new DataTable();
bool foofunc(DataTable dt)
{
・・・・
adapter.Fill(dt);
とは同じ結果になると
836:デフォルトの名無しさん
17/11/04 10:37:55.56 q474DaJy0.net
>>815
まぁ、outにする必要はあるけど、
「検査結果を引数に返して実行エラーの有無を戻り値で返していること」
自体に問題はないな。
837:デフォルトの名無しさん
17/11/04 10:38:05.17 OcSSsXSe0.net
この手のメンバ変数に検索結果をセットする時はこんな感じにして、例外処理は基本呼出側に任せちゃうんだけど問題あるのかね?
前はエラーコードのEnum返してたけど、エラーケースの殆どが例外処理で扱われる物ばかりだったので止めちゃった
DataTable dt = new DataTable();
Void SetHoge(DataTable dt){
・・・・
adapter.Fill(dt);
}
838:デフォルトの名無しさん
17/11/04 10:56:19.06 q474DaJy0.net
>>819
それで良いと思う。
上のみたいに成功したかどうかを返り値で返すのは、
正常運用の範囲内で失敗する場合があるのを想定している場合。
839:デフォルトの名無しさん
17/11/04 12:23:07.70 5h9DYzfZ0.net
>>819
自分ならこうするけど。
DataTable GetHoge()
{
var dt = new DataTable();
・・・・
adapter.Fill(dt);
return dt;
}
840:デフォルトの名無しさん
17/11/04 13:59:17.12 dOyJdliUp.net
>>821に1票
841:デフォルトの名無しさん
17/11/04 14:56:00.76 ePC4mkkA0.net
参照型にrefは無意味って言ってるやつは
呼び出し元変数のインスタンスを変更「できる」
ってことをどう評価してるのか
842:デフォルトの名無しさん
17/11/04 15:15:02.21 Vg1Izipf0.net
型がわからない変数と同じ型の変数を用意したいときってなんか記述方法ある?
型を調べるとかじゃなくてプログラミング的に解決する手法あったら教えて
843:デフォルトの名無しさん
17/11/04 15:24:28.88 m6ZusNHm0.net
型引数で解決できるならそれで
844:片山博文MZ
17/11/04 15:24:47.55 Yg7qqeZtd.net
>>824
ヴァーか?
845:デフォルトの名無しさん
17/11/04 15:41:42.41 WuSfeAlZa.net
>>824
var y = 謎の変数x;
っていうか、たぶん何か勘違いしてると思うw
「型が分からない変数」っていうのは実行時に型が決まるって意味なんだろうけど、
変数の型は静的に(コンパイル時に)確定しているのでそれはありえない
それとも匿名型のことを言ってる?
846:デフォルトの名無しさん
17/11/04 15:49:14.84 jl0ZLZ4q0.net
dynamic型ならコンパイル時の型チェックは行なわれず実行時に解決するね
847:デフォルトの名無しさん
17/11/04 15:52:54.75 WuSfeAlZa.net
>>828
いや、「変数の型」は静的に決まるでしょ。自分でdynamic型って書いてるじゃんw
848:デフォルトの名無しさん
17/11/04 15:55:26.19 tIYipYwe0.net
>>824
var x1 = new X();
var x2 = Activator.CreateInstance( x1.GetType() );
849:デフォルトの名無しさん
17/11/04 16:13:39.02 sTeHaJ1X0.net
>>823
まあそれが必要なケースがほとんどないし
850:デフォルトの名無しさん
17/11/04 16:19:15.36 2EEZfJvra.net
引数のnullチェックして必要ならインスタンスをnewしてつけられる
851:デフォルトの名無しさん
17/11/04 16:41:13.06 tIYipYwe0.net
バットノウハウっぽい
852:デフォルトの名無しさん
17/11/04 16:43:39.78 FXv0ObyH0.net
>>833
バットは関係ないやろ
853:デフォルトの名無しさん
17/11/04 16:53:42.21 /YBu7JsUM.net
>>832
出来るが引数がnullな時点でArgumentException飛ばすんで実用価値はほぼないな。
854:デフォルトの名無しさん
17/11/04 16:58:31.41 tIYipYwe0.net
>>834
関係ないな。しょぼい誤字だ。
>>824
何をやりたいか分からないが、ジェネリックメソッドでは目的に沿わないかな。
855:デフォルトの名無しさん
17/11/04 17:05:47.97 83ZjnaGFa.net
javascriptみたいなのを想定してるんだろうけど
まあ普通はない
856:デフォルトの名無しさん
17/11/04 17:44:10.96 SXZaCuwQ0.net
ベッドノウハウ
しかし俺は未経験
857:デフォルトの名無しさん
17/11/04 17:51:46.51 sTeHaJ1X0.net
>>832
だからそんなことが必要になったことがどれだけあるんだ?
858:デフォルトの名無しさん
17/11/04 18:10:38.00 WuSfeAlZa.net
なんかしょうもないことで争ってるけど、>>823の方が正しいね
エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ
負け惜しみでくだらない意地を張るのは子供っぽいよ
859:デフォルトの名無しさん
17/11/04 18:13:38.30 wTKOoVxtr.net
ペットノウハウ
ボトルじゃないよ
860:デフォルトの名無しさん
17/11/04 18:17:18.92 wTKOoVxtr.net
MSらしく反則技が用意してあるだけ
初心者は使わない方が無難
返り値が二つ以上欲しい時は今なら名前付タプルを使う
861:デフォルトの名無しさん
17/11/04 18:26:59.70 flyq3nv80.net
返値代わりに使うのはoutだし今ならって言ってるとおり昔はなかったんだし
ちょっと何言ってるのか分からない
862:デフォルトの名無しさん
17/11/04 18:35:14.75 sTeHaJ1X0.net
>>840
> エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ
???
refって参照型じゃなくても使えるんだが...
参照型にrefを使うことがほぼないだろって話だと思うけどな
> 負け惜しみでくだらない意地を張るのは子供っぽいよ
自己紹介は要らんよ w
863:デフォルトの名無しさん
17/11/04 18:40:28.61 WuSfeAlZa.net
>>844
意味が分からない
変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が
参照型であるか値型であるかは関係ない。
何を言ってんの?
しかし、いい歳こいて幼稚な奴って嫌だねほんと
864:デフォルトの名無しさん
17/11/04 18:43:37.92 OcSSsXSe0.net
>>842
名前付きタプル使いたいけどVS2013限定という変な縛りに囚われているわ
フレームワーク縛りは判るけど、IDEのバージョンを縛る理由ってなんなんだろう
865:デフォルトの名無しさん
17/11/04 18:58:38.30 3Qk/5QRnM.net
古いコンパイラでビルドできなくなるだろ
俺個人としては大した問題ではないと思うけど、大した問題だと考える人がいるのは普通に理解できるぞ
866:デフォルトの名無しさん
17/11/04 19:12:51.54 sTeHaJ1X0.net
>>845
> 変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が
> 参照型であるか値型であるかは関係ない。
えっ?
普通にググればrefが値型と参照型でどう使われてるかわかると思うんだが...
引っ込みつかなくなってるのかな
> しかし、いい歳こいて幼稚な奴って嫌だねほんと
また自己紹介ですか? w
867:デフォルトの名無しさん
17/11/04 20:19:58.00 m6ZusNHm0.net
幼稚呼ばわりが得意なのはかの例外を握り潰す人だが
868:デフォルトの名無しさん
17/11/04 20:22:16.23 m6ZusNHm0.net
ようするにキチガイなので相手にしなくてよいという話
869:デフォルトの名無しさん
17/11/04 20:45:43.86 5h9DYzfZ0.net
>>840
とりあえず、refは値型以外には使い道が無いのは確定で。
870:デフォルトの名無しさん
17/11/04 20:48:54.35 wTKOoVxtr.net
>>846
2017?
871:デフォルトの名無しさん
17/11/04 20:49:38.51 mF4CZaPha.net
>>848
マジモンかよ
俺個人が使うか、あるいは一般に多用されるかどうかはともかく、
参照型であろうと変数の値(つまり参照)そのものを書き換えたいケースは存在すると思われる。
たとえばStringのようなイミュータブルな型や配列の長さのように変更できない要素を
持つ型の場合、元の値を利用しつつそれを加工した値を返すにはrefを使うしかない
872:デフォルトの名無しさん
17/11/04 20:50:11.25 jl0ZLZ4q0.net
最近見たrefはBindableBaseの中だったな、ref Tとかジェネリックの場合
普段は使わないね
873:デフォルトの名無しさん
17/11/04 21:08:51.42 uh9vgcan0.net
議論ごっこやりたいのなら
ふらっと C#,C♯,C#(議論用)
スレリンク(tech板)
で好きなだけやってくれ。ワッチョイもないから
874:デフォルトの名無しさん
17/11/04 21:14:23.59 5h9DYzfZ0.net
意味もなく
try
{
・・・
{
catch
{}
や
try
{
・・・
{
catch (Exception ex)
{
throw ex;
}
するヤツってアフォですか?
お願いだから辞めてください。
875:デフォルトの名無しさん
17/11/04 21:16:19.73 mF4CZaPha.net
>>856
プログラマがそこで例外が発生しうることを認識してそのコードを書いていることを
明示する意味はあるよ。
>>851といい、ちょっと単細胞過ぎないか?
876:デフォルトの名無しさん
17/11/04 21:28:09.69 sTeHaJ1X0.net
>>850
了解
>>853を見る限りおまえの言う通りだな
>>851
さすがにそれは極論過ぎ
877:デフォルトの名無しさん
17/11/04 21:30:25.68 VAjFkczd0.net
>>857
え?
878:デフォルトの名無しさん
17/11/04 21:49:38.46 FXv0ObyH0.net
>>857
c#で>>856やるとそこまでのスタックトレース消し去ることになるんだけど正気?
879:デフォルトの名無しさん
17/11/04 21:49:52.84 jdRJf/Av0.net
ファイルが読めない程度で例外返すクラスとか一旦握り潰して動作を変えたい
880:デフォルトの名無しさん
17/11/04 21:53:09.24 J+hizfOLd.net
>>861
c#使うのやめた方がいいな
881:デフォルトの名無しさん
17/11/04 22:02:23.28 5h9DYzfZ0.net
>>862
go言語が例外処理の機能を無くした理由の1つは、大半のプログラマーが例外処理を正しく扱えないから。
本当にそう思うよ。
882:デフォルトの名無しさん
17/11/04 22:06:52.22 mF4CZaPha.net
>>860
まあ後者はたしかに普通やらないと思う。
ただ、例外情報なんて必ずしも常に必要とは限らない。
883:デフォルトの名無しさん
17/11/04 22:07:27.03 /B23IXM6M.net
>>861
関数の返り値でエラー処理したい人?
884:デフォルトの名無しさん
17/11/04 22:09:09.61 KEPGzX0z0.net
>>863
C#使うのやめてGo使った方がいいな
885:デフォルトの名無しさん
17/11/04 22:12:09.30 mF4CZaPha.net
>>865
TryXXXなんてのがあるように、そもそも成功したかどうかしか関心がない場合もあるでしょ
886:デフォルトの名無しさん
17/11/04 22:12:58.59 5h9DYzfZ0.net
>>866
Go言語もまともには扱えないと思う。
887:デフォルトの名無しさん
17/11/04 22:14:37.92 5h9DYzfZ0.net
>>867
それは例外でエラーを拾はないでエラー処理をしたい場合。
例外処理は少々重い。
888:デフォルトの名無しさん
17/11/04 22:19:20.92 48c6JPwZa.net
例外は便利だよ
変な使い方しなければ
889:デフォルトの名無しさん
17/11/04 22:23:38.64 /B23IXM6M.net
>例外処理は少々重い。
初回の例外発生の時にその例外クラスがロードされるみたいなんだけど、その事?
890:デフォルトの名無しさん
17/11/04 22:40:21.94 FXv0ObyH0.net
>>864
常に必要ではないが、それをわざわざ消す必要があるか?
891:デフォルトの名無しさん
17/11/04 22:40:24.62 WGNINBFE0.net
ファイルを削除や移動する前に、他のソフトで使用中かどうかを調べるのに
R/Wモードでオープンしたときに例外が発生するかしないかで判断するしか無い
この処理のときはcatchでfalse返して例外を握りつぶしている
892:デフォルトの名無しさん
17/11/04 22:56:58.41 mF4CZaPha.net
>>872
まあ、たとえ使わなくてもInnerExceptionに食わせて再スローした方がベターだとは思う
893:デフォルトの名無しさん
17/11/04 22:59:45.13 FXv0ObyH0.net
>>874
Java出身の人がよくやる勘違いだよね
894:デフォルトの名無しさん
17/11/04 23:37:22.84 48c6JPwZa.net
例外で何を伝えたいかどう制御したいか決まってなければ迷うかもしれない
例外出ても継続できる内容なのかもあるかな
895:デフォルトの名無しさん
17/11/05 00:13:35.57 m9wZGInC0.net
例外をどこで処理するか(または投げっぱなすか)という基準をきちんと決めないとカオスになりがち
でも事前に決めて徹底させるのが難しい場面も多いのよね
896:デフォルトの名無しさん
17/11/05 00:49:39.43 /t3HbS0w0.net
タスケテ!!!
RARを回答する方法がわからないの!
なんか組み込みでいいのないの!?
897:デフォルトの名無しさん
17/11/05 00:53:25.52 yAuwzX3k0.net
>>878
7Zipのライブラリで回答できた
URLリンク(sevenzip.osdn.jp)
使い方はすっかり忘れたから聞かないでくれ
898:デフォルトの名無しさん
17/11/05 00:55:50.51 eJ/HGJ4TM.net
コトリンの恐怖がおんどれらを襲うwww
899:デフォルトの名無しさん
17/11/05 01:34:09.45 27Wvnc5t0.net
適当に検索してみたら、それなりにref stringとかを伴うコードがあった
最近のref絡みの言語拡張を見てもコンパイラ絡みのガチガチに最適化するところとかはref引数の使いどころがあるっぽい
URLリンク(github.com)
あと、二重ポインタを扱うPInvokeとかでもでてくる
900:デフォルトの名無しさん
17/11/05 01:47:27.68 +CtSMn6Br.net
CodeDomだからC#創成期だね
いわゆるひとつのレガシー
901:デフォルトの名無しさん
17/11/05 01:51:07.20 /t3HbS0w0.net
>>879
ぐぬぬだよ!
exeとdll持ってきてコマンドラインにするかあ
902:デフォルトの名無しさん
17/11/05 02:12:10.73 /t3HbS0w0.net
外部のexeをインスタンス化してそれにコマンド発行ってできる?出来た気がする
7Zipを複数起動して複数ファイルの圧縮と解凍をしたいのよ
903:デフォルトの名無しさん
17/11/05 02:25:25.39 /t3HbS0w0.net
ProcessStartInfoか
なんでもないです
904:デフォルトの名無しさん
17/11/05 03:06:49.05 5Sua66ij0.net
>>884
ファイルIO絡むから、複数同時に動かすとむしろ遅くなるんじゃないかな。
905:デフォルトの名無しさん
17/11/05 04:13:51.92 /t3HbS0w0.net
>>886
えー
SSDやRAMに出しても?
メモリ内で解凍してデータ加工して再圧縮できない?全部メモリ内で
外部ツール使ってたら無理か
906:デフォルトの名無しさん
17/11/05 07:19:38.45 3uuR82Hq0.net
>>881
夜中まで必死にググった努力は認める w
>>882の言うように今時としてはいまいちのコードだよ
907:デフォルトの名無しさん
17/11/05 07:21:17.15 eAtbP2F40.net
「ref string」が何に使えるかは置いておいて、これで合ってる?
URLリンク(ideone.com)
908:デフォルトの名無しさん
17/11/05 07:24:20.42 3uuR82Hq0.net
>>886
むしろI/O絡むから複数同時の意味がある
909:デフォルトの名無しさん
17/11/05 08:45:03.60 TvjmwwI20.net
>>871
仕組みは良くわからんけどスタックトレースを辿るとかの処理が重いと思ってる。
速度の必要の無い処理はオレオレ例外投げてエラー処理してる。
その方がコードがスッキリ書けるし。
910:デフォルトの名無しさん
17/11/05 08:47:05.58 TvjmwwI20.net
>>881
いつの間にか、ref 参照型 は不要から ref 全て不要に変わってるし。
ref 値型は必要でしょう。
911:デフォルトの名無しさん
17/11/05 09:02:12.28 TvjmwwI20.net
>>877
例外をどこで処理するかは非常に簡単だが皆分かってない。
・例外をcatchして処理できる場合はcatchして処理する
・処理できない場合は何もしなくて(無駄にcatch throwもしない)呼び出しもとに任せる
・最後はAppDomain.UnhandledException等で拾ってログ吐いて落とす
何も出来ないのにcatchしてエラーメッセージだけ出すヤツ多すぎ。
912:デフォルトの名無しさん
17/11/05 09:14:14.87 dh3CGsv/0.net
言語仕様としてref値型が必要なのはわかるけど
じゃあ使うかというと使わないかな
もう何年も書いた記憶がない
913:デフォルトの名無しさん
17/11/05 09:29:17.02 yKSdtk7l0.net
ゲームで自分で当たり判定を書いたとき
GC を避けるため使ったことがあるな
914:デフォルトの名無しさん
17/11/05 09:52:03.41 TvjmwwI20.net
>>894
hoge.TryParseも使った事がないと?
915:デフォルトの名無しさん
17/11/05 10:20:04.86 3uuR82Hq0.net
.TryParse( ) は ref じゃなくて out
916:デフォルトの名無しさん
17/11/05 10:20:40.26 vfJyTH9D0.net
アプリ作るたびに
ViewModelBaseのSetProperty<T>(ref T field, T newValue
を作って毎回使ってるな。
で、今ちょうどJavaでMVVMやってて、refないのでSetPropertyがかけなくてつらい・・
if (this.value != value) {
this.value = value;
notifyほにゃ
}
refないのでプロパティ毎に3行書いてるんだけど死にたい。
917:デフォルトの名無しさん
17/11/05 10:40:15.20 iAaHdauhM.net
SetProperty(value, v => field = value)
でいいだろ
設定先が単純なフィールドでない場合にも対応できるしJavaでも同じ
918:デフォルトの名無しさん
17/11/05 10:56:36.45 vfJyTH9D0.net
んん??
どういうことそれ。引数2つ??
3つ使って
SetProperty<T>(T field, T newValue, Action<T> setterActon)
こんな感じならいけそだけど。
SetPropert(field1, 10, t => field1 = 10)
後は最後にproperyNameを渡す引数追加して。
919:デフォルトの名無しさん
17/11/05 11:01:15.31 vfJyTH9D0.net
SetPropert(field1, 10, t => field1 = 10)
は
SetProperty(field1, 10, t => field1 = t)だった
bool SetProperty<T>(T field, T newValue, Action<T> setterActon, string propertyName) {
if (!object.equals(field, newValue)) return false;
setterAction(newValue);
onPropertyChanged(propertyName);
return true;
}
コンパイルしてねぇけどこんな感じかな。
920:デフォルトの名無しさん
17/11/05 11:11:46.25 27Wvnc5t0.net
>>888
前とは別の人だし、githubで適当に検索してみただけだから特に時間もかけてないんだけどね
roslynとかで"ref 適当な型名"で検索しても、何件か引っかかるし一応新しいコードでも(美しいかはおいといて)使ってるんじゃないかな
軽くしか見てないけどnullなら初期化ってしてるコードが多いけど、ArrayBuilerはある程度有効活用になってそうな雰囲気
ref値型いらないって言ってるのはホントの初心者でしょ
そちらは明らかに使いみちだらけ
921:デフォルトの名無しさん
17/11/05 11:22:13.81 +CtSMn6Br.net
×初心者
○過去を捨てられないベテランさん
922:デフォルトの名無しさん
17/11/05 11:28:47.04 idfQljxTM.net
例外が必ず適切にはかれるわけではないからこうしろって言われても困る
923:デフォルトの名無しさん
17/11/05 11:31:31.42 3uuR82Hq0.net
>>902
いいわけは要らんよ
君がref参照型が有効だと思うコードを晒せばいいだけ
924:デフォルトの名無しさん
17/11/05 11:31:51.41 FejOKWJjM.net
>>904
どう言う意味?
925:デフォルトの名無しさん
17/11/05 12:03:01.14 8CRgy4j+a.net
まだ変なのが暴れてるけど、参照型であれ値型であれrefなんか必要ない、
であれば主張に一貫性があり一理ある。
筋が通らないのは。refは値型でしか意味がないという主張。
昨日説明した通り値型参照型の違いはrefの有用性と関係ない。
>>906
>>904がそうい言いたいのかどうか分からないけど、例外の処理方法や
どの程度「真面目に」処理するかだって所詮要件次第なのに、例外の話になると
妙に教条主義的になる変な人がいるのは確かだ
926:デフォルトの名無しさん
17/11/05 12:46:34.43 FejOKWJjM.net
>>907
例外が適切に吐かれないって事が有るのか知りたい。
927:デフォルトの名無しさん
17/11/05 12:51:25.95 uz/X8WP/M.net
>>907
> まだ変なのが暴れてるけど
自己紹介ですか?
928:デフォルトの名無しさん
17/11/05 13:12:09.84 yAuwzX3k0.net
ref はCの&にあたるものだが、&iは普通に使うけど&pなんて見たこと無いってことだ
929:デフォルトの名無しさん
17/11/05 13:34:59.13 sDEQ50L
930:K0.net
931:デフォルトの名無しさん
17/11/05 13:46:53.29 eJ/HGJ4TM.net
素人なのでref/outの使い道がよくわからないのですが、public変数にするとかじゃだめなんですか?
932:デフォルトの名無しさん
17/11/05 13:50:53.40 xly4dgsP0.net
>>912
メソッド実行するたびにインスタンス作成すればおk
933:デフォルトの名無しさん
17/11/05 13:54:44.96 jvnuL8BP0.net
>>912
コトリン使えばおk
934:デフォルトの名無しさん
17/11/05 14:06:26.50 bQLtuEEMM.net
>>912
全部Public変数にしたら引数も戻り値も不要だね。
君は天才かも。
935:デフォルトの名無しさん
17/11/05 14:08:16.80 +CtSMn6Br.net
>>912
素人なら自作関数には両方使わない
唯一あるとすれば
パフォーマンスをシビアにする必要がある
かつフィールドをたくさん持った値型
の場合だがそんな状況はアプリにもよるがそうそう無い
936:デフォルトの名無しさん
17/11/05 14:15:44.96 tjXjX3Hx0.net
>>893
と赤間さんが言ってたね
937:デフォルトの名無しさん
17/11/05 15:53:29.60 3uuR82Hq0.net
>>912
釣り針でかすぎ
938:デフォルトの名無しさん
17/11/05 18:22:15.77 /t3HbS0w0.net
藤原竜也に戻せよ
939:デフォルトの名無しさん
17/11/05 18:23:05.50 /t3HbS0w0.net
誤爆
940:デフォルトの名無しさん
17/11/05 20:56:07.78 TvjmwwI20.net
>>917
赤間って誰?
MSDNのコラムにc#の例外処理について解説していた良い記事があったんだが見つからんわ。
C と C++のが見つかったw
URLリンク(msdn.microsoft.com)(v=vs.71).aspx
941:デフォルトの名無しさん
17/11/05 21:00:58.55 UgX7F9HB0.net
URLリンク(blogs.msdn.microsoft.com)
これかな?
942:デフォルトの名無しさん
17/11/05 21:09:00.23 TvjmwwI20.net
>>922
赤間さん?
943:デフォルトの名無しさん
17/11/05 21:12:55.00 TvjmwwI20.net
「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。」
これよ、これ。例外処理の本質。
944:デフォルトの名無しさん
17/11/05 21:42:49.26 xly4dgsP0.net
>>924
そうはいってもファイルが読めないだけで例外だすじゃん
945:デフォルトの名無しさん
17/11/05 21:52:08.84 RoulHjpBa.net
>>922
ああこの記事ね。
個人的にはあんまりロジカルじゃないと思うんだよねこの記事。
読んでいて感じるいくつかの「なぜ」に対する答えがない
(1) エラーを業務エラーとそれ以外に大別するのはいいとして、なぜ前者に例外機構を
使ってはいけないのか?
(2) なぜ集約例外ハンドラーみたいなスパテッティーを推すのか。
そもそもそういうスパゲッティーを避けるための仕組みが例外機構ではなかったのか?
(3) いくら何でも
「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません」
これは言い過ぎではないのか。
946:デフォルトの名無しさん
17/11/05 21:59:38.87 sDEQ50LK0.net
>>926
(3)は吹いたわwww
947:デフォルトの名無しさん
17/11/05 22:12:12.00 5Sua66ij0.net
リトライとかの回復処理は全部ライブラリー内で完結してることが前提なんだろうな。
言いたいことは分からないでもないけど、想定しているアプリがすごく狭い気がする。
948:デフォルトの名無しさん
17/11/05 22:39:40.25 GDhCJlyO0.net
アプリケーションってよりビジネスロジックって言いたかったのかね
949:デフォルトの名無しさん
17/11/05 22:49:10.60 fgQ02ied0.net
>>926
(1)や(3)はコメントで回答されてるんじゃないの?
集約例外ハンドラーは業務エラーを戻り値で表現しようと
例外で表現しようと必要じゃない?
950:デフォルトの名無しさん
17/11/05 22:51:14.59 sDEQ50LK0.net
>>930
必要だってのと推奨するのとは違うだろ
951:デフォルトの名無しさん
17/11/05 22:52:06.64 6FoY61ET0.net
てか集約例外ハンドラーがスパゲッティってどういうこと?
エラーメッセージやログ処理して終了するだけのごく短いコードだと思うけど違うの?
952:デフォルトの名無しさん
17/11/06 00:52:33.36 voxzxgu2r.net
>>925
ヘルスバーグも筆の誤り
953:デフォルトの名無しさん
17/11/06 06:29:36.68 6qywALcU0.net
>>928
例外に落ちた時点で回復可能なエラーって限られてるぞ。
ファイルがロックされて書き込めないとか。
殆どは回復不能だし、デッドロックにしてもリトライするより適切にロックしているかやロジックを見直す必要があるだろうし。
ま、例外の原因で一番多いのは自分の仕込んだバグだw
954:デフォルトの名無しさん
17/11/06 08:53:17.37 2nM3KO37M.net
>>932
集約例外に回復コードを仕込もうと思ってるんだろ。
955:デフォルトの名無しさん
17/11/06 12:00:15.83 I56lauc90.net
くそベンダーにありがちwww
956:デフォルトの名無しさん
17/11/06 12:23:10.12 2nM3KO37M.net
糞ベンダーは、全てのメソッドにtry-catchを入れるコーディング規約。
957:デフォルトの名無しさん
17/11/06 16:16:18.79 sVTioIv70.net
ネットで更新してるアプリってテキストファイルの文字読み込んでプログラミングしてるんだなその方が変更しやすいのか?
958:デフォルトの名無しさん
17/11/06 17:30:29.32 2nM3KO37M.net
>>938
エスパー登場を待とう
959:デフォルトの名無しさん
17/11/06 17:33:56.53 RoDWv0Jka.net
>>938
勘違いです
960:デフォルトの名無しさん
17/11/06 17:36:08.18 Z+IOadg3M.net
ランチャー的なフォームから小画面を起動するフォームアプリを作ったのですが、小画面大量に出すと重くなります。小画面毎に別スレッドで起動する方法を教えてください
961:デフォルトの名無しさん
17/11/06 17:37:41.80 RoDWv0Jka.net
設計が間違ってます
小画面を大量に出さないようにしましょう
962:デフォルトの名無しさん
17/11/06 17:43:20.86 Vd7vqFxu0.net
小画面の意味がわからないし、大量とはどのくらいなのかもわからない
963:デフォルトの名無しさん
17/11/06 17:48:57.32 sVTioIv70.net
なんだ勘違いかテキストで読み込んでるのは理由あんまりないんだ
964:デフォルトの名無しさん
17/11/06 17:51:17.55 Z+IOadg3M.net
>>942
そこをなんとか
>>943
10枚程度です。
965:デフォルトの名無しさん
17/11/06 17:53:30.02 RoDWv0Jka.net
ツールでボットやwebチェッカー使ってるんじゃないかな
ボット一個にwindow1個とか
そういうのはwindow一個で多数のものを扱うべき
リソースの無駄
966:デフォルトの名無しさん
17/11/06 17:55:01.56 PxQVFHXG0.net
どうせ並列で動いてるならPCもう一個買えよ
967:デフォルトの名無しさん
17/11/06 17:56:54.41 JuX+gvIy0.net
>>945
フォームを別に表示したら元のフォームには影響しないし
10や20くらいの別フォーム起動したくらいで重くなったことはない
小画面で何をやっているかわからないしスレッド分けて~では多分解決しない
>>944
スレ違いだと思うけどアンチウィルスのパターンデータ更新みたいなのと勘違いしているだろ
VisualStudioだってバイナリアップデートなんだから
968:デフォルトの名無しさん
17/11/06 18:06:53.58 piexXh++0.net
関数にListを渡す時に関数内で要素を書き換えできないようにするにはどうすればいいですか
969:デフォルトの名無しさん
17/11/06 18:08:01.18 QmwWSIUM6.net
無理です
970:デフォルトの名無しさん
17/11/06 18:08:42.99 JuX+gvIy0.net
>>949
C#7.2を待つかそのlistをコピーして渡すか書き換えないように気を付けるかしてください
971:デフォルトの名無しさん
17/11/06 18:27:27.21 rATvQkns0.net
IReadOnlyListとして渡せばええやん
972:デフォルトの名無しさん
17/11/06 18:33:50.08 QmwWSIUM6.net
>>952
なにそれ
オブジェクトのリストを作ったとしてそのリストの要素のプロパティを書き換えるのも出来ない?
973:デフォルトの名無しさん
17/11/06 18:35:54.11 3XyzIl3H0.net
>>951
readonly ref って構造体限定じゃね?
974:デフォルトの名無しさん
17/11/06 18:37:32.84 RoDWv0Jka.net
>>952
こんなものがあったのか
便利そう
975:デフォルトの名無しさん
17/11/06 19:01:30.72 7bDcgZ2tM.net
>>801
無いことがバレてプログラマの月収は一律18万円になった
976:デフォルトの名無しさん
17/11/06 19:16:12.58 GQ87vZ7n0.net
>>949
AsReadOnlyメソッドで足りるならそちらで
>>905
言い訳とは
普通にroslynのソースとダブルポインタを要求するPInvokeじゃ不満足?複雑なやり取りを低コストでやれてると思うが
977:デフォルトの名無しさん
17/11/06 19:34:57.48 6qywALcU0.net
>>941
スキルの無いヤツほどスレッドを使いたがる。
スレッドが何か分かっているヤツはスレッドでしか実現できない場合のみ仕方なくスレッドを使う。
978:デフォルトの名無しさん
17/11/06 19:43:20.15 6qywALcU0.net
>>938
質問の内容がワケワカラン過ぎるぞ。
979:デフォルトの名無しさん
17/11/06 20:15:45.06 TIxTD8nqM.net
>>957
> 普通にroslynのソースとダブルポインタを要求するPInvokeじゃ不満足?複雑なやり取りを低コストでやれてると思うが
だからそう言う言い訳はどうでもいいからコードを晒せよ
980:デフォルトの名無しさん
17/11/06 20:27:25.28 XSO2MFzP0.net
>>953
流石にそれを禁止するのは無理
IListにあるAddとかRemoveとかインデクサのsetterとかがないというだけなので
981:デフォルトの名無しさん
17/11/06 21:47:01.14 Uzk0iC6KM.net
>>958
では軽くする方法を教えて下さい。
子フォームでは重要なことは非同期で行っています
982:デフォルトの名無しさん
17/11/06 21:54:22.54 PxQVFHXG0.net
何やってるか知らんけど
10枚も出したらそれで限界な可能性は?
非アクティブなときも重いってあるかなぁ?
983:デフォルトの名無しさん
17/11/06 21:55:47.11 4oP8v+rY0.net
>>962
では重い原因を教えて下さい。
ただフォーム出して重くなったでは何も分かりません。
984:デフォルトの名無しさん
17/11/06 22:04:31.11 TDT9B1paa.net
>>962
まず重い原因を突き止めましょう。
純粋にFormのロード(表示)だけに時間がかかってるなら
個人的は軽量化は諦めた方がいいと思う
Loadか何かのタイミングで実行してる初期化が重いなら
そこを軽量化するなりタイミングを工夫するなり
個人的想像だと前者の可能性は低い気がする
というか、Vista時代のPCでも余程大量のコントロール乗せてたり
レイアウトパネル系を多用でもしてないとそこまで極端に重くはならんと思う
985:デフォルトの名無しさん
17/11/06 22:06:21.11 qEpy6DDg0.net
Listを抽象化したいのですが、どのように書けば良いでしょうか?
以下のように書けるかと思ったのですがダメでした
よろしくお願いします
interface ITest
{
}
public class Test: ITest
{
public string hogege { get; set; }
}
class Hoge
{
List<ITest> test = new List<Test>();
}
986:あ
17/11/06 22:06:24.98 /hMSyilp0.net
>>962
単純にそのアプリ、親アプリと子アプリに別けて、親アプリから小アプリを10個起動したら駄目なの?
重い処理があって辛いぐらいの機能があるなら、1つの子画面で親ごと巻き込まれて死んでほしくないし、俺ならプロセスから別ける。
あと、非同期でやってる、の非同期がasyncなら、それは普通にタスクを切り替えるスキの間隔が広いかとか、諸々普通に重いだけじゃないの?
await Task.Delay(1)とか呼んでみたら?
987:デフォルトの名無しさん
17/11/06 22:11:16.29 AYpingtn0.net
>>966
右辺と左辺の型が違うじゃん
988:デフォルトの名無しさん
17/11/06 22:40:14.56 Uzk0iC6KM.net
>>967
その、プロセスの分け方教えて下さい!
989:デフォルトの名無しさん
17/11/06 22:48:51.69 voxwNiAb0.net
>>969
今更どうしようもないが、次作るときはウインドウの数減らしたほうが良いよ
できればメイン一つで画面遷移やタブで処理+ダイアログも同時に開くのは一つだけとかね
990:デフォルトの名無しさん
17/11/06 22:49:36.85 9FNc82fk0.net
死ね
991:デフォルトの名無しさん
17/11/06 23:36:54.55 VYb2y8+kM.net
>>966
List抽象化はIList<Test> test= じゃないのかよw
992:あ
17/11/06 23:50:31.09 /hMSyilp0.net
>>969
プロセスの分け方も何も、今フォーム起こすのに使ってるメソッドの引数を文字列にして、Process.Startで起動引数にして起動するだけのイメージだったけど。
993:デフォルトの名無しさん
17/11/07 01:00:13.01 cTk2bFo+0.net
Parallelって非同期でしか使えない?
994:デフォルトの名無しさん
17/11/07 01:08:19.93 V+BPLIz50.net
うんにゃ
995:デフォルトの名無しさん
17/11/07 01:33:47.43 TUoQCgcU0.net
>>975
同期できるのか
使おうかな
996:デフォルトの名無しさん
17/11/07 02:12:31.67 V+BPLIz50.net
>>976
どういう用途を想定してるん?
997:デフォルトの名無しさん
17/11/07 09:07:17.90 lDMoKAlXM.net
そもそもParallelは同期処理に使うもんだぞ
Fork-Joinっていう、同期処理を並列で実行するパターン
998:デフォルトの名無しさん
17/11/07 12:22:40.45 BMsgFSV6r.net
一晩エスパーしたけどListの抽象化の意味解読できず
ITest[] tests = new Test[n];
IEnumrable<ITest> = new List<Test>();
なら可能だが
999:デフォルトの名無しさん
17/11/07 15:05:18.45 +aQKsyS3d.net
リスト抽象化という分かってるようで何も理解できてないお題
1000:デフォルトの名無しさん
17/11/07 15:17:32.57 odkSTBx66.net
>>980
新スレ頼んだ
1001:デフォルトの名無しさん
17/11/07 15:31:40.49 QoqDyUp+0.net
>>979
変数名忘れてる!
1002:デフォルトの名無しさん
17/11/07 16:33:19.67 pVSOD8mN0.net
抽象化して継承するのと基本クラスにして継承するのと使い道がわからんよな
1003:デフォルトの名無しさん
17/11/07 16:46:40.87 j6tNoJ1F0.net
スレタイのC#表記は一つだけでいい
形骸化してる
1004:デフォルトの名無しさん
17/11/07 20:08:16.46 LeQqgpmT0.net
そういえばずっと疑問なんだが
そもそもC#て「シーシャープ」で合ってる? #はNo.だと習ったような...
それともスレタイどおり普通に「シーフラット」なのか?
1005:デフォルトの名無しさん
17/11/07 20:11:35.30 QoqDyUp+0.net
>>985
作った人によると(C++)++で、+を4つ並べて#にしたという
で、読み方はシーシャープだと
1006:デフォルトの名無しさん
17/11/07 20:14:22.37 4uzCwn7XM.net
>>985
正式にはシャープだけど、半角表記にするために井桁でもいいことになってる
1007:デフォルトの名無しさん
17/11/07 20:17:34.23 LeQqgpmT0.net
ほほう!!ありがとう!
1008:デフォルトの名無しさん
17/11/07 20:25:03.73 LeQqgpmT0.net
さすがに♭でなくて安心した
1009:デフォルトの名無しさん
17/11/07 20:48:12.22 wMlMdyQ30.net
>>987
ちょっと違う
半角で表せるようにC#と書いてC Sharpと読むと仕様書に明記されてる
C♯とかは間違い
1010:デフォルトの名無しさん
17/11/07 20:49:14.24 bwe89n7Ka.net
>>986
その話は後付けだったと思うけどw
つまりC#(C sharp)っていう名前が決まったのが先で、よく見るとこれって+が四つでインクリメント演算子が2つの
ようにも見えるよねって話だったはず
1011:デフォルトの名無しさん
17/11/07 20:50:12.84 4uzCwn7XM.net
>>990
いや公式な仕様書だと♯表記だよ
1012:デフォルトの名無しさん
17/11/07 20:50:44.75 bwe89n7Ka.net
>>990
そもそも#と♯が本来別文字かどうか怪しいw
印刷屋さんの都合じゃないのかと
1013:デフォルトの名無しさん
17/11/07 20:55:28.06 t6NaVxzvH.net
ナンバーサインと音楽記号シャープは
まったく別物でしょ
1014:デフォルトの名無しさん
17/11/07 21:00:34.38 LeQqgpmT0.net
次スレ建ててみる
1行目
!extend:checked:vvvvv:1000:512
でいい?なお、スレタイ変えない
1015:デフォルトの名無しさん
17/11/07 21:12:11.14 LeQqgpmT0.net
ふらっと C#,C♯,C#(初心者用) Part133
スレリンク(tech板)
1016:デフォルトの名無しさん
17/11/07 21:42:13.43 kORl+ylV0.net
おつ
1017:デフォルトの名無しさん
17/11/07 22:58:38.88 JobEFelh0.net
荒れてばかりなのにきちんと次スレの立つこのスレ >>996 乙
1018:デフォルトの名無しさん
17/11/08 00:26:45.39 lzmkdMJA0.net
スレ立ておつ
1019:デフォルトの名無しさん
17/11/08 00:36:05.51 CLyn8lVQ0.net
ぬ
1020:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 29日 5時間 35分 9秒
1021:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています