ふらっと C#,C♯,C#(初心者用) Part134

■ このスレッドは過去ログ倉庫に格納されています
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/01/25(木) 16:22:53.90ID:rd0qfL0Fa
あら、更新してない間にえらいレス増えてたw
684デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 16:27:14.19ID:uboI0CmN0
要するに
Canvas(これはBItmapと同じ?)
Image (これは、Bitmap以外にも多種多様な表示を扱う?)
Graphics (これは描画するための、関数群のようなもの?)
の違いが不明ってことかな。
上の例(DOBON)では
 Picture.Image=Canvas
 これでImageにビットマップを代入して描画が完了することになっている。
 g.DrawImage(img, 0, 0, img.Width * 2, img.Height * 2);
ここでgを使ってimgに描画したのでもうgはいらない。だからgはdisposeした。
ならわかるが、ここでimgをDsiposeするからわけがわからない。
685デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 16:34:42.10ID:uboI0CmN0
あっ、コメントにちゃんと書いてあった。

//画像のサイズを2倍にしてcanvasに描画する
g.DrawImage(img, 0, 0, img.Width * 2, img.Height * 2);
ここですでにCanvasに書いているんだな。
2018/01/25(木) 16:37:20.54ID:867zoX3ca
はい
解決したね良かったね

写真(img)を見て画用紙(canvs)に鉛筆(g)で絵を描いた
終わったので写真と鉛筆を片付けた

画用紙を額(picturebox1)に入れて飾りました
687デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 16:43:44.03ID:uboI0CmN0
DOBONの例の機序
PictureBox1のサイズで空のBITMAPを作成する。
そのビットマップから描画オブジェクトのGraphics gを作成する。
ファイルからBitmapのImageを作成する。
gでそのImageをBITMAPに描画する。(BITMAPに描画したのでg、imgはいらない)
描画したBITMAPをPictureBOxにコピーする。

こういうことか。わかった。お騒がせしました。ペコリ
2018/01/25(木) 16:46:23.63ID:y1oROuxV0
やっぱりuingとか言ってた奴はガイジだっただろ?
689デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 16:47:36.29ID:uboI0CmN0
>gは数が限られている

それはおかしい。そんなことはどこにも書いてない。
もしそうだとしたら
Graphics g = Graphics.FromImage(canvas);
このコードが間違いってことになる。ここで数量をチェックしないといけない。
2018/01/25(木) 16:48:50.78ID:867zoX3ca
ガイジって言葉を使う奴のほうがどうかしてると思いますよ
691デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 16:52:18.84ID:uboI0CmN0
>C#でたころにGDIの限界までオブジェクト作ったことがあったな
>画面がおかしくなって黒いところがあちこちにできる 。リソースがないと怒られる

これはどういう意味? メモリーの限界ではなくて、GDI(ハードウエア)がもつレジスタの限界ってこと?
Graphicsって要するにGDIのリソースを確保するという意味なの?
2018/01/25(木) 16:53:13.35ID:867zoX3ca
ググればいいよ思うよ
ここはチャットじゃない
2018/01/25(木) 16:56:18.20ID:y1oROuxV0
ユーザフレンドリーと見せかけてウンコの代表みたいなクラスなので
真面目に考えないほうがいい

結局仕組みを理解するにはwin32の描画文化から知る必要がある
2018/01/25(木) 16:56:28.77ID:rd0qfL0Fa
>>689
しょうもないことに突っかかるなあw
数が限られてるって言い方が気に入らないなら高価な共有リソースって言えば分かる?

例えば巨大な配列とか、通信ポートとか、
そういった類のものを「一人」がずっと占有したら他の人が使いたい時に使えないよね?
2018/01/25(木) 16:57:30.81ID:y1oROuxV0
>>694
そんなくだらない例え話じゃなくてちゃんと現象を説明してあげればいいじゃない
2018/01/25(木) 17:00:16.17ID:rPbpnmYW0
>>691
GDIはハードウェアっつーより…Windowsでの実装が気になるならReference Sourceでも読んで
メソッド内部では色々チェック入ってるし、しくじったら例外ぶん投げるようになってるから
697デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 17:14:44.08ID:uboI0CmN0
例外ね。それならわかる。
698デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 17:19:27.46ID:uboI0CmN0
MSの説明はたったのこれだけw
■Graphics クラス
 Encapsulates a GDI+ drawing surface. This class cannot be inherited.

GDI+って要するに、グラフィックコントローラを使うってことでしょ。でも鉛筆5本ってほどしょぼいことはないだろ。
2018/01/25(木) 17:20:48.94ID:867zoX3ca
まだググってないのかよ…
2018/01/25(木) 18:18:42.61ID:bbltRTAq0
結局リソースリリースタイミングを制御しないといけなくなるわけで、ほんとGCって糞だよな。
2018/01/25(木) 18:20:51.02ID:bbltRTAq0
最近のMSのドキュメントはほんと不親切だよな。
幸運なことGDI+は不親切になる前に開発されたものだから、ググればMSも含めて大量にドキュメントが残ってる。
2018/01/25(木) 18:22:45.01ID:lTsrogoKd
>>700
論理的に
703デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 19:02:27.22ID:uboI0CmN0
ググってみた。
Application.SetCompatibleTextRenderingDefault(false);
というのが設定されるようになっていて、GDI+は糞だからGDIを使いなさいってことらしい。w
2018/01/25(木) 19:09:48.12ID:MFAun2Gg0
>>703
文字列の描画の話だけ持ってきて何がしたい
https://dobon.net/vb/dotnet/control/setcompatibletextrenderingdefault.html
質問じゃないのならチラシの裏にでも書いてくれ
2018/01/25(木) 19:23:49.81ID:bbltRTAq0
よく鉛筆5本とか言うけど、Win16ではDCは同時に使用できるのは5つまでだった。
だからDC取得したらその関数内ですぐ開放するのが当たり前だった。
2018/01/25(木) 20:28:49.03ID:y1oROuxV0
c#の{ }って中身が1文の場合、省略できるものとできないものってどうやって決まってるんでしょうか?

namespace、class、
for、switch、while、try、checked、fixed、unsafeなど
707デフォルトの名無しさん (ワッチョイ e39d-1ipv)
垢版 |
2018/01/25(木) 20:53:14.29ID:uboI0CmN0
省略しないこと。それが賢いプログラムスタイル。
2018/01/25(木) 21:11:21.97ID:LWlSA0E2a
>>706
知らんけどこの辺?
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/statements#embedded-statements
709愛知人
垢版 |
2018/01/25(木) 22:57:58.27
PictureBoxのMouseMoveイベントハンドラ内にInvalidate()を入れるとTimerのTickが止まります。何故ですか?
https://ideone.com/fWNMPP
2018/01/25(木) 22:59:36.29ID:867zoX3ca
コード見てないけど
そんな暴れん坊見たいことはしないほうがいいと思う
711愛知人
垢版 |
2018/01/25(木) 23:02:00.73
マウスの位置をフィールドに入れて間隔の短いタイマーで描画しますか?
712デフォルトの名無しさん (ワッチョイ 0b9e-ss0X)
垢版 |
2018/01/26(金) 01:44:30.98ID:TUeBIint0
すみません質問です。
C#でエクセルを複数起動させるプログラムを書いているのですが、解決できない問題があります。
例えば既にa.xlsxが開かれていて、追加で3つのエクセルファイル(b.xlsx, c.xlsx, d.xltm)を立ち上げるとします。
その場合、process.start("excel", "b.xlsx c.xlsx d.xltm");
とすると、a~dまでが一つのプロセスにまとまるのはいいのですが、テンプレートが編集モードで開いてしまいます。
仕方ないので、
process.start("excel", "b.xlsx c.xlsx");
process.start("d.xltm");
とテンプレートだけ"excel"を抜いて起動すると、ちゃんとテンプレートは新規ファイルで開かれますが、プロセスが3つに分かれてしまいます・・[a.xlsx], [b.xlsx, c.xlsx], [d1]
(何故かa.xlsxまで孤立しちゃうんですよね・・・)

色々試したところ、
process.start("excel", "b.xlsx c.xlsx");を実行して一度処理を終了させた後(この時点ではa~cが一つのプロセスになっている)、
また起動し直しでprocess.start("d.xltm");を単独実行させると、a~cと同じプロセスにdが加わってくれました。
であれば、全部起動完了待ちすればうまくいくか?と思って、
Process p = new Process();
p.StartInfo.FileName = "excel";
p.StartInfo.Arguments = "b.xlsx c.xlsx";
p.Start();
p.WaitForInputIdle();
p.StartInfo.FileName = "d.xltm";
p.Start();
と、インスタンスを作ってからp.WaitForInputIdle();を加えたうえで実行させると、
プロセスは3つじゃなく今度は2つにまとまりましたが、一つになってくれませんでした・・。
[a.xlsx, b.xlsx, c.xlsx], [d1]
という具合で、何れにせよテンプレートだけプロセスが分かれちゃいます。

色々試しましたが、テンプレートファイル含む複数のエクセルファイルを、テンプレートファイルは新規ファイルとして開きつつ、全て一つのプロセスとして起動させる方法が分かりませんでした・・

方法があれば教えてくださいお願いいたします(m_m)
713712 (ワッチョイ 0b9e-ss0X)
垢版 |
2018/01/26(金) 02:02:53.98ID:TUeBIint0
712です。
p.WaitForInputIdle();
の後に、System.Threading.Thread.Sleep(1000);
を強引に追加したら上手くいきました・・。
(うまくいったというのはつまり、
a.xlsxだけが最初に開いてあって、
b.xlsx, c.xlsx, d.xltmをC#で開いた時、a~dまで一つのプロセスにまとまり、
d.xltmも新規ファイルで開いてくれたという事です)
でもこれ、絶対正規の解決方法じゃないですよね?
きっともっといい方法ありますよね?・・
ご教授下さい。お願いいたします。
714愛知人
垢版 |
2018/01/26(金) 02:18:07.66
長すぎて目が回る
2018/01/26(金) 02:55:01.83ID:o5aK9JZ1a
>>712
コマンドラインオプションで"/t"でも指定してみるとか
知らんけど
https://support.office.com/ja-jp/article/Microsoft-Office-%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%83%A9%E3%82%A4%E3%83%B3-%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81-079164cd-4ef5-4178-b235-441737deb3a6#ID0EAABAAA=Excel

オートメーションでやった方がいいんじゃないの?
2018/01/26(金) 05:52:15.43ID:YXUTlXJp0
>>713
システムハングアウトなめんな。
スリープは大事。
717712 (ワッチョイ 0b9e-ss0X)
垢版 |
2018/01/26(金) 12:19:07.12ID:TUeBIint0
>>715
オートメーションってつまり、コムオブジェクト使うって事ですかね?
ちょっと調べてみます。
>>716
スリープも効果的に使えば立派なコードですかね!
ミリ秒時間の調整行って、確実に上手くいく範囲で秒数縮めてみようかと思います。
もっといい方法見つかればそれで実装しますが、それまでスリープで対応しようかと思います。
有難うございました。
2018/01/26(金) 17:21:24.22ID:YG13MR3r0
Form1のデータから、Form2を呼び起こして、
Form2のPrintDocument1_PrintPageを印刷しています。

Form2を閉じて、2回目にForm1から別のデータを印刷すると、
DrawStringで印刷したデータが重複してしまいます。

PrintDocument1_PrintPageを初期化するような方法はないでしょうか?
2018/01/26(金) 17:29:15.32ID:SCIRVI+W0
getcommandlineargs()で引数を渡すと
スペースとダブルクォーテーションが消えてしまいますがどうすればいいですか?
大文字にしても消えます
720愛知人!id:ignore (ワッチョイ b375-5Mtj)
垢版 |
2018/01/26(金) 17:36:10.53ID:56XeCPud0
>>718
意味不明
721愛知人
垢版 |
2018/01/26(金) 17:41:29.04
>>719
ダブルクォーテーションは""に置き換える
スペースの入った文はダブルクォーテーションで囲む
722デフォルトの名無しさん (ワッチョイ da60-1ipv)
垢版 |
2018/01/26(金) 18:01:50.81ID:SCIRVI+W0
>>719
すいませんかんちがいしました
2018/01/26(金) 18:48:32.92ID:AIK2YVo40
>>708
ありがとう
自分でやってみた結果
埋め込みステートメントができるのは

do,if,else,fixed,for,foreach,lock,using,while

だった
724愛知人
垢版 |
2018/01/27(土) 13:34:52.88
pictureBoxに線を引いたり色々描画した後に指定位置のピクセルの値を取得する方法はありますか?
CopyFromScreen?を使うしかないですか?
725愛知人
垢版 |
2018/01/27(土) 13:48:07.76
>>724は取り消し
726デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 00:10:09.85ID:fNHvxuhr0
(12345).ToString("D8") = "00012345"
だけど、”    12345"にする方法はないのか?
2018/01/28(日) 00:27:28.05ID:89noKjbb0
>>726
0を半角スペースにしたいならPadLeft(桁数)でいいんじゃね
728デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 08:12:58.16ID:fNHvxuhr0
なるほど
" 123"
" 123.0"
" 123.00"
~
みたいなのをformat登録しておいて一括処理したいんだが,,,,
PadLeftをつかうには、独自フォーマットを作って解析して分解するひつようがあるな。
"8,D","12,F1","10,F2","10,F3","8,D"
これをSplitで分解して桁と表示にわけるとできる。みんなこんなことをやってるんだろうか?
2018/01/28(日) 09:10:44.54ID:KQzDOLbA0
設計ミスだな
出力の幅なんて最終的な出力の段階で自ずと決まるもんだろ
普通そんなもん必要ない
2018/01/28(日) 10:28:13.08ID:6EjFtDvJ0
文字列は空白埋めできたような
Formatを2回する
あるいはカスタムフォーマッタを作成
2018/01/28(日) 11:07:52.48ID:DjJaMqeu0
String.Format("{0,8:d}", 12345);
732デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 12:35:12.10ID:fNHvxuhr0
>設計ミスだな

ToStringとString.Formatでいちいち仕様を変えるなんざ設計ミスもいいとこだ。
2018/01/28(日) 12:45:46.83ID:Tf1PDahga
別物を同じように思う脳がおかしい
2018/01/28(日) 13:15:50.33ID:ExF5GMWy0
$"{12345,8} 6.0になってからString.Formatを使わなくなったな
735デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 13:38:54.52ID:fNHvxuhr0
>>734
残念。VS2013ではそのスタイルは動かんな。
2018/01/28(日) 13:44:27.34ID:AvNbdCpkM
最新のVSって毎週バージョンが上がってて、アップデートしたら突然ビルドが通らなくなったりとか時々あるんだよね
自社開発でパパっと対応できる体制の開発が前提になってて、もうジャパニーズドカタには手を出せない代物
2018/01/28(日) 13:50:09.26ID:FrmPXjIGa
質問者が何言ってるのか俺にはさっぱりわからんけどみんなよく分かるなw
2018/01/28(日) 13:51:15.96ID:N5xGT/cM0
HAP使ってますか?
2018/01/28(日) 13:51:41.80ID:Tf1PDahga
俺も正しい意味はわからないけど憶測で判断してる

文章も書けないくらい幼稚だけど偉そうなレスしてるとだけわかる
2018/01/28(日) 13:54:41.80ID:8+IXgyMg0
お前もやろがw
2018/01/28(日) 13:56:13.99ID:Tf1PDahga
>>728
これが特に意味不明だけど考えてわかるレベル

>>735
これが偉そう
742デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 14:11:02.89ID:fNHvxuhr0
List<string> a = new List<string> {
"x3" ,
"x4" ,
"x5" ,
"x6" ,
"x7" ,
"x8" ,
};
foreach (string el in a)
{
combox1.Items.Add(el);
}

combox1の初期化ってこんな方法しかないのか? 直接は初期化できんのか?
743デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 14:12:38.19ID:fNHvxuhr0
>>236
ちゃうちゃう、$”  { valuえ} ”の記述はVs2017しかサポートしとらん。
2018/01/28(日) 14:15:41.42ID:Jve/QRxt0
AddRange()使えば
2018/01/28(日) 14:15:49.45ID:EAfEAz/a0
>>742
デザイナのコード見ろよ。あれが基本だ
2018/01/28(日) 14:16:07.45ID:Tf1PDahga
配列でAddRange初期化出来なかった?
747デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 14:43:45.42ID:fNHvxuhr0
Addrange でできた。サンクス。
748デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 15:01:38.15ID:fNHvxuhr0
int w = (int)((double)pic.Width / (double)(1 + x ) / 1.3);
doubleとintを混在するときにdoubleに自動的に型推論する機構ってないの?
いちいちキャストするのはメンドクサイよな。
2018/01/28(日) 15:44:15.18ID:AvNbdCpkM
>>748
int w = (int)(pic.Width / (1.0 + x ) / 1.3);
でいけるはず
750デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 16:53:15.56ID:fNHvxuhr0
あっ、ほんとだ。いけた。ありがとう。
751デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 17:12:56.15ID:fNHvxuhr0
Fontをファイルに保存したい。この場合name,style,sizeに分解して保存するのだろうか?
他に何かいい方法は?
752デフォルトの名無しさん (ワッチョイ e305-5Mtj)
垢版 |
2018/01/28(日) 17:14:48.84ID:WjjZpgjO0
>>745
バーカw
753愛知人 (ワッチョイ e316-5Mtj)
垢版 |
2018/01/28(日) 17:18:54.87ID:X+CD44G50
>>751
多分VSのアプリケーション設定のところでシリアライズして保存できるようにできる
2018/01/28(日) 17:20:49.97ID:EAfEAz/a0
>>751
もう少し意味が通じるようにまとめろよ
Font.Familyname:string
FontStyle:int
FontSize:float(single)
755愛知人 (ワッチョイ b375-fuuV)
垢版 |
2018/01/28(日) 18:07:26.86ID:QV+bfV+F0
これな
https://i.imgur.com/ZyRzEn7.png

これで保存
Properties.Settings.Default.*** = font;
Properties.Settings.Default.Save();

これで読み出し
var font = Properties.Settings.Default.***;

ユーザーのアプリケーションデータフォルダの中にxmlで保存されるようになってる
2018/01/28(日) 20:22:00.44ID:DjJaMqeu0
var conv = TypeDescriptor.GetConverter(typeof(Font));
var text = conv.ConvertToString(font);
font = (Font)conv.ConvertFromString(text);
757デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 20:23:59.60ID:fNHvxuhr0
それがあるのは知っていたけど、Settingsってそんなふうに使うのか。初めて知った。
便利そう。ありがとう。

前に設定してみたけど、ビルドすると直ぐに消えてしまうので、どうやって使うのか
わからなかった。
2018/01/28(日) 20:29:18.90ID:siYtS87s0
>>757
バージョンアップすると設定が消えちまうのは仕様です
で、https://qiita.com/hbsnow/items/0d19910a46bb6d902cd5のように回避します
759デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/28(日) 21:15:10.28ID:fNHvxuhr0
Properties.Settings.Default.DispFont = lblFont.Font ;
エラー 1 プロパティまたはインデクサー 'Properties.Settings.DispFont' は読み取り専用なので、割り当てることはできません。

フォントはリードオンリーになるので設定は無理ぽい。
2018/01/28(日) 21:47:20.89ID:Tf1PDahga
それコピーした?
なんかおかしいけど?
761愛知人
垢版 |
2018/01/28(日) 23:47:37.92ID:QV+bfV+F
>>759
え〜。こっちだと問題ないよ〜
https://i.imgur.com/WY2Y4Qb.png
762デフォルトの名無しさん (ワッチョイ e39d-snNQ)
垢版 |
2018/01/29(月) 00:40:38.31ID:YDWVgvG40
>>761
スコープのところをアプリケーションにしたのが間違いだった。ユーザーにしたら
いけた。

でも暫くやって意味がわからなかったので結局はJson.netを使って保存した。
クラスをそのままシリアライズしたらFontもなにもかも一切合切勝手にシリアライズ
してくれた。W
これは分かりやすい。一発でわかった。
763愛知人
垢版 |
2018/01/29(月) 01:03:38.61ID:pcTu+bOr
だよなぁ〜
764デフォルトの名無しさん (ワッチョイ 8781-1ipv)
垢版 |
2018/01/29(月) 01:50:11.03ID:0ju9RGha0
class 年齢 {
public string 名前{ get; set; }
public int 年齢{ get; set; }
}
List<年齢> 年齢リスト = new List<年齢>();
このような年齢型の年齢リストがあったとして、
年齢が21のリストだけを抽出したい場合、ラムダ式ではどのように書けば良いのでしょうか?
765愛知人
垢版 |
2018/01/29(月) 01:56:46.26ID:pcTu+bOr
list.FindAll(x=>x.年齢==21)
2018/01/29(月) 02:06:43.62ID:0ju9RGha0
>>765
ありがとうございます。明日試してみます!
2018/01/29(月) 06:31:31.02ID:1VUu5V2b0
>>761
関係ないけどフォントって何?
2018/01/29(月) 06:32:39.08ID:1VUu5V2b0
あ、VSの表示に使っているフォントね
769愛知人
垢版 |
2018/01/29(月) 13:34:43.26ID:pcTu+bOr
メイリオ
770デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
垢版 |
2018/01/29(月) 16:33:40.56ID:FA24LoNZ0
配列の要素すべてが0もしくは1000でなかったらという論理式を書きたいのですが
2018/01/29(月) 16:59:53.70ID:p1yk/NdGa
で、っていう

その文章、「でない」がどう掛かるのかあいまいで二通りの解釈が可能だから、
解釈の余地がなくなる別の表現を工夫した方がいいと思うよ
772愛知人
垢版 |
2018/01/29(月) 17:05:56.81ID:pcTu+bOr
>>770
arr.All(x=>x!=0&&x!=1000)
2018/01/29(月) 17:42:29.88ID:vA4dMQ1gM
>>771
ドキュメントでよくあるよなこれ
この種のミスをする奴は何度注意しても直らないんだよ
774愛知人
垢版 |
2018/01/29(月) 18:26:02.43ID:pcTu+bOr
反射的にレスしてすまん
たしかに2通りあるな
775デフォルトの名無しさん (ワッチョイ b703-rERY)
垢版 |
2018/01/29(月) 18:58:15.23ID:z90g+lRG0
ねえわwリアルでもこんなアスペばかりで困るけどなw
776愛知人
垢版 |
2018/01/29(月) 19:04:54.22ID:k6Igz8nX
arr.All(x=>!(x==0||x==1000))
!arr.All(x=>x==0||x==1000)
2018/01/29(月) 19:08:04.50ID:vO9vHw7qM
日本語で書くから間違える
最初からコード書けばいいのにね
2018/01/29(月) 19:10:08.17ID:CbBWbMhk0
>>775
お前の読解力が絶望的だってのはわかった
2018/01/29(月) 19:48:59.46ID:4EZh8ZpyM
>>777
なるほど、つまり>>770は、

arr.All(x=>!(x==0||x==1000))
を書きたいのですが

もしくは、

!arr.All(x=>x==0||x==1000)
を書きたいのですが

と質問すべきだったと。
確かにこれなら解釈が割れる心配ないね!
2018/01/29(月) 20:09:39.08ID:Ml84jtHT0
anyのことも、偶には思い出してやって下さい
781愛知人
垢版 |
2018/01/29(月) 21:07:54.20ID:pcTu+bOr
解ってます
2018/01/31(水) 06:50:26.36ID:ywuJndNd0
>>689
どーせ、CreateCompatibleDCみたいな話
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況