ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2016/04/07(木) 23:50:53.69ID:qhI2bqCd他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part119 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1454169140/
■関連スレ
C#, C♯, C#相談室 Part90 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1455160063/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
0002デフォルトの名無しさん
2016/04/08(金) 01:38:17.04ID:mOlgqJFI0003デフォルトの名無しさん
2016/04/08(金) 06:37:09.93ID:HJ1k/UMj0004デフォルトの名無しさん
2016/04/08(金) 14:41:08.64ID:1CGIDV2R0005デフォルトの名無しさん
2016/04/08(金) 17:40:04.39ID:ZKlMt/erusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
と入ってきます。
using System;
と
using System.Linq;
だけにしたいのですが、どこを弄るといいですか。
VBだとプロジェクトのプロパティの参照タプの中で指定できました。
0006デフォルトの名無しさん
2016/04/08(金) 18:01:42.28ID:Dbjh+uI90007デフォルトの名無しさん
2016/04/08(金) 18:26:24.26ID:ZKlMt/er0008デフォルトの名無しさん
2016/04/08(金) 18:57:24.06ID:Dqsd1B4yデフォルトテンプレートを弄れるかどうかは知らない
0009デフォルトの名無しさん
2016/04/08(金) 19:15:16.90ID:k5mAqr7Y0010前スレ966
2016/04/08(金) 20:57:12.84ID:O+dqsEfsレス�dです。わかりました
hddに空き容量があるかどうかって、どう判断すればいいんですか?
空き容量がクラスターサイズ未満の場合、空き容量不足と判断していいんですか?
0011デフォルトの名無しさん
2016/04/08(金) 21:32:07.36ID:rceSL6lb「チェックして何かする」という操作は、その一連の操作がアトミックでない限り、TOCTOU問題を孕んでいる
一連の操作をアトミックにできないのならば、「失敗したら対処する」が正解
0012デフォルトの名無しさん
2016/04/08(金) 21:45:30.03ID:rceSL6lbそもそも正確性が必要ないなら「理由は分からんが書き込みに失敗した」例外で十分だと思いますけどね
だって空き容量だけが書き込めない理由ではないし
0013デフォルトの名無しさん
2016/04/09(土) 00:06:43.64ID:+uY9P9N5例えば、new [] {
0014デフォルトの名無しさん
2016/04/09(土) 00:12:43.21ID:+uY9P9N5例えば、new [] {
0015デフォルトの名無しさん
2016/04/09(土) 00:13:29.70ID:+uY9P9N50016デフォルトの名無しさん
2016/04/09(土) 00:21:33.80ID:IY2UdM/90017デフォルトの名無しさん
2016/04/09(土) 00:36:20.92ID:+uY9P9N5http://ideone.com/7zaJob
0018デフォルトの名無しさん
2016/04/09(土) 00:39:47.80ID:gMQW+q93何をいいたいのか全くわかりませんが、
とりあえずクラスタサイズと空き容量を比べるのは不毛だとわかったのでやめておきます
0019デフォルトの名無しさん
2016/04/09(土) 01:14:54.06ID:ZG8b6ceC拡張メソッド使った方が良さそうだねこれ
beginとendの間だけフローを別にするわけだし
0020デフォルトの名無しさん
2016/04/09(土) 01:18:52.50ID:ZG8b6ceC0021デフォルトの名無しさん
2016/04/09(土) 02:20:14.08ID:+uY9P9N5結果を遅延評価のIEnumerable型で返せればいいので、拡張メソッドでやってみます。
ありがとうございます。
0022デフォルトの名無しさん
2016/04/09(土) 03:49:09.65ID:rNffGqnSダイアログのプログラムを作っています。
メインのダイアログに、ピクチャーBOXを作って
そこに、画像を出したいです・・・
2つ目のダイアログ(モーダル?)を
出し、そこからボタンを押して
メインのダイアログに画像を表示を行っても、出ないです・・・
なぜ???
0023デフォルトの名無しさん
2016/04/09(土) 09:51:53.08ID:AbuIHjSUusing多用する人はVB行った方がいいと思う
0024デフォルトの名無しさん
2016/04/09(土) 10:03:11.06ID:R4MY7GdiusingとVBの関係って何?
>>5のコードでListやTask定義するにもSystemから記述するのが基本なの?
0025デフォルトの名無しさん
2016/04/09(土) 10:17:52.75ID:6gRo/Soyテメーもプログラマーの端くれなら閾値をはっきり定義しろ
できねえだろ
主観で喋るな
0026デフォルトの名無しさん
2016/04/09(土) 11:08:55.29ID:AbuIHjSU0027デフォルトの名無しさん
2016/04/09(土) 11:18:07.13ID:R4MY7Gdi相手して損したわ
0028デフォルトの名無しさん
2016/04/09(土) 11:33:39.18ID:wC7h6zHD0029デフォルトの名無しさん
2016/04/09(土) 11:34:55.96ID:mjwXlN36先にusing数の上限を決めるとか本末転倒もいいとこ。大体、usingが増えると何が悪いって言うんだ。
言語仕様もC#6.0でusing staticが追加されるような方向なのに。
0030デフォルトの名無しさん
2016/04/09(土) 11:59:24.66ID:+GTdNWiWID:AbuIHjSU
バカ発見
0031デフォルトの名無しさん
2016/04/09(土) 12:25:29.83ID:AbuIHjSUusing 大阪府中央区;
using 兵庫県神戸市;
void XXX() {
元町 m;
一番町 i;
・
・
}
可読性最悪と思わないか?
0032デフォルトの名無しさん
2016/04/09(土) 13:00:31.96ID:VR6ZQ3df何が言いたいのかわからいけど、
元町がどのクラスにもあって判別つかないなら
そもそも省略できないから、可読性云々にはならない
特定のクラスにしか無いなら、〜一番町と毎回書かれるより、一番町の方が自分は可読性が良いと感じる
0033デフォルトの名無しさん
2016/04/09(土) 13:05:21.40ID:nRuHPtMR0034デフォルトの名無しさん
2016/04/09(土) 13:25:34.39ID:mjwXlN36名前空間的な設計がひどいw
というか、それらを同じレベルで扱う理由が分からん。
それは置いといて、
紛らわしい場合はエイリアス使うか、そこだけ名前空間名付きで使うだろ。
全体を縛る理由にはならん。
0035デフォルトの名無しさん
2016/04/09(土) 14:55:43.84ID:tsk5klzv名前が一意でなければコンパイルエラーになるだろうとか
アホの極み
0036デフォルトの名無しさん
2016/04/09(土) 17:05:27.54ID:DA1syyI4using禁止してもすべてフルパスで書けば良いだけだから
少ないほど良いなら禁止にすれば良いのに
0037デフォルトの名無しさん
2016/04/09(土) 17:08:18.33ID:tdJ21AF+どこのクラスかよりどんな機能かの方が大事じゃない?
それにどこに属してるかなんてマウス当てれば見れるし
0038デフォルトの名無しさん
2016/04/09(土) 17:25:06.02ID:2XO/HUgQNUnit使った時に、.NETデフォルトの名前空間と被ったことあったな
0039デフォルトの名無しさん
2016/04/09(土) 17:43:14.71ID:wC7h6zHD賛同を得られないようです。
そうなったらなったでエイリアスかフルパス指定して下さい。
0040デフォルトの名無しさん
2016/04/09(土) 20:38:53.28ID:nX2uL7WF重要だよ
名前空間はコンテキストを表からね
自分が扱っているコンテキストを知らずにコードなんて書けない
0041デフォルトの名無しさん
2016/04/09(土) 21:13:08.18ID:oSYK5b7Mそれは所有関係で表せよw
class 地球{
日本 日本;
アメリカ アメリカ;
}
004222
2016/04/09(土) 21:17:45.14ID:L1kfgsDfプログラム作らなければならないので・・・
>2つ目のダイアログ(モーダル?)を
出し、そこからボタンを押して
メインのダイアログに画像を表示を行っても、出ないです・・・
ひっそりと、教えてくれれば、有りがたいです
0043デフォルトの名無しさん
2016/04/09(土) 21:59:13.95ID:8IlPZvxc0044デフォルトの名無しさん
2016/04/09(土) 22:02:20.33ID:y1M33vAR0045デフォルトの名無しさん
2016/04/09(土) 22:27:50.77ID:LuIwrhYb3つクラス(Form1クラス、Aクラス、Bクラス)があるんですが
今はForm1クラスはAクラスのインスタンスを持っていて、AクラスでBクラスのインスタンスを作成しているんですが
Form1クラスからBクラスの値を参照したくなった場合、どう実装したほうがいいんでしょうか?
0046デフォルトの名無しさん
2016/04/09(土) 22:34:31.00ID:oSYK5b7M初言語javaなんだけど、俺がjava始めたばっかりの頃importが面倒で、
import java.*;
import javax.*;
だけ書いたけど、エラー出たから何故動かないんだよって思ってた
0047デフォルトの名無しさん
2016/04/09(土) 23:20:28.04ID:Xp7ojQRiその1
AクラスにBクラスの必要なメソッド等の委譲コードを書く
その2
AクラスにBインスタンスのプロパティを作る
0048デフォルトの名無しさん
2016/04/10(日) 00:28:58.42ID:Ahv7tyaqBクラスを静的なクラスにするのはやめたほうがいいんですか?
0049デフォルトの名無しさん
2016/04/10(日) 08:27:51.35ID:+2PVv+oX後ほど
何か?説明出来るもの作成します・・
>>44
その通りです。
メインダイアログのForm1にPictureBox1
が、有って
2つ目のダイアログを出して、そこからForm1のPictureBox1
を表示をさせているのだけど、表示されない・・・
簡単なものが出来ない・・・Orz
0050デフォルトの名無しさん
2016/04/10(日) 09:14:16.51ID:7j13M86fBクラスの用途次第。
つうか、BクラスがstaticならAクラスを経由する意味なくね?
0051デフォルトの名無しさん
2016/04/10(日) 10:28:18.72ID:1Wh4RO0Jあまり違いが無いのかもしれませんが、
リソースに音声ファイルを置いてProperties.Resourcesから引っ張ってくるのと
たとえばアプリケーション配下に用意したフォルダに置いておいてパスを指定するのと
どっちがよいものでしょう
0052デフォルトの名無しさん
2016/04/10(日) 10:34:21.45ID:1I5jwrs3■概要
「そうですねabcの次はdefですね笑」
上記文章のdefにマッチさせる正規表現文字列をご教授下さい。
■ロジック
「***笑」の「***」の中に存在する「最後の」半角英数文字を取り出したい。
■現在の正規表現文字列
"([0-9a-zA-Z!-~]+)(.*)(笑)"
■現在の正規表現文字列に対するマッチ結果
マッチ文字列 : abcの次はdefですね笑
マッチ文字列グループ1 : abc
マッチ文字列グループ2 : の次はdefですね
マッチ文字列グループ3 : 笑
■質問内容
上記グループのいずれかにdefが該当するような
正規表現文字列を教えて下さい。
ポイントは「最後の」です。
0053デフォルトの名無しさん
2016/04/10(日) 10:42:56.62ID:eLrPtu2a0054デフォルトの名無しさん
2016/04/10(日) 10:47:00.73ID:1I5jwrs3ご回答ありがとうございます。
伝え方がまずかったですが、
ロジックは、
「***笑」の「***」の中に存在する「最後の」半角英数文字を取り出したい、
です。
半角英数文字が2個あるとは限らない(1個かもしれないし100個かもしれない)
かつ、
そうですね、の次は、ですねは不要です。
0055デフォルトの名無しさん
2016/04/10(日) 10:52:08.91ID:/P6H1bvWこの場合はfが欲しいものかな?
0056デフォルトの名無しさん
2016/04/10(日) 10:52:08.96ID:eLrPtu2a0057デフォルトの名無しさん
2016/04/10(日) 11:09:44.11ID:1I5jwrs3ご回答ありがとうございます。
欲しいものは def です。
「***笑」の「***」の中に存在する「最後の」半角「連続」英数文字を取り出したい、
のです。
>>56
ご回答ありがとうございます。
半角「連続」英数文字が2つとは限りませんので。。
1個かもしれないし100個かもしれないです。
0058デフォルトの名無しさん
2016/04/10(日) 11:23:25.02ID:1I5jwrs3以下で解決しました。ご回答ありがとうございます。
"([0-9a-zA-Z!-~]+)([^0-9a-zA-Z!-~]*)(笑)"
0059デフォルトの名無しさん
2016/04/10(日) 15:13:22.39ID:uwr9rV8dC++と決定的に違うところ
利点でもあり欠点でもある
0060デフォルトの名無しさん
2016/04/10(日) 17:20:39.84ID:RwAe3a6t0061デフォルトの名無しさん
2016/04/10(日) 17:45:17.43ID:2nCcxZVq0062デフォルトの名無しさん
2016/04/10(日) 18:02:48.76ID:+n+Dd3ZV0063デフォルトの名無しさん
2016/04/10(日) 20:02:19.00ID:ClY0znlz0064デフォルトの名無しさん
2016/04/10(日) 21:07:55.33ID:Ahv7tyaqAクラスを経由する必要はないです
結局Formクラスでインスタンスを作成し、そのインスタンスをAクラスにも渡すようにしました
0065デフォルトの名無しさん
2016/04/10(日) 21:11:39.48ID:7j13M86f意味解らん。
staticなクラスのインスタンスを作る?
0066デフォルトの名無しさん
2016/04/10(日) 21:17:09.60ID:7j13M86fエスパーしてみる。
T Foo<T>(T a, T b) => (dynamic)a + (dynamic)b;
例えば、こんな意味かな?
0067デフォルトの名無しさん
2016/04/11(月) 04:02:12.79ID:+pegrb/Dもともと
>AクラスでBクラスのインスタンスを作成している
って書いてあった
>Bクラスを静的なクラスにするのはやめたほうがいいんですか?
って話があっただけで、今Staticだとは言ってないような
>>64
クラスの値ってのが何かいまいちはっきりしない
Staticでいいならそれでもいいけど
Aクラスで、生成したBクラスのインスタンス返すようにして、フォームでそれ受け取る方がよいんじゃね
0068デフォルトの名無しさん
2016/04/11(月) 04:12:47.88ID:PV6heo6W多分それだろう
ジェネリクスで受けた引数に例えば+=などの演算子を適用するにはdynamicが必要だから
0069デフォルトの名無しさん
2016/04/11(月) 08:31:59.54ID:PPmBx3Gy>>68にジェネリクスは少し早すぎたようだな
0070デフォルトの名無しさん
2016/04/11(月) 08:35:31.15ID:aH1XfOsQジェネリック医薬品と間違えちゃったんでしょうえ
0071デフォルトの名無しさん
2016/04/11(月) 09:32:02.93ID:0g0FwiI9頭のお薬ね
007264
2016/04/11(月) 23:13:52.75ID:OVeoS2bRstaticにはしてないです
>>67
staticにするとそれはそれで結構な量を修正しないといけないので
結局インスタンスクラスのままにしてFormクラスで持つようにしました
もう一つ疑問が出てきたので回答お願いします
FormClosedイベントで設定された値をBクラスのインスタンスに格納してXmlシリアライズ化で保存しようとしているんですが
Formが閉じられなくなります
BクラスのデストラクタXmlシリアライズさせているのですが
FormClosingイベントで値の保存をするべきなのでしょうか?
0073デフォルトの名無しさん
2016/04/11(月) 23:19:38.51ID:4CkanXgX隠し事はお前のためにならないぞ
0074デフォルトの名無しさん
2016/04/11(月) 23:45:26.74ID:qF5EN52b0075デフォルトの名無しさん
2016/04/12(火) 03:11:25.21ID:k6A/HJ44FormClosedはフォームが閉じられた後に発生するイベントだぞ
ちなみにフォームの開く/閉じると、インスタンスの寿命は一致してないし
そもそも.NETではデストラクタが実行されるタイミングは不定だぞ
デストラクタで保存しようとしたら、GC走るまで保存されない
0076デフォルトの名無しさん
2016/04/12(火) 10:29:02.98ID:t1SANezo文字化けしないようにするにはどうすればいいですか?
0077デフォルトの名無しさん
2016/04/12(火) 11:07:05.44ID:4pSn+gwfヘッダにもContent-Type正しく書いてるしUTF-8だしで化ける要素なさそうだけど
ideoneとかでその化けるってコード書いたら
0078デフォルトの名無しさん
2016/04/12(火) 13:42:28.56ID:DFx5CsWv0079デフォルトの名無しさん
2016/04/12(火) 16:26:23.95ID:nUKDNopl0080デフォルトの名無しさん
2016/04/12(火) 21:33:08.43ID:OgC2WVdIFormClosedイベント中はまだFormの変数とかは破棄されてないんですよね?
調べているとApplication.Exitが発行されてから発生すると書かれているんで
もしかしてFormClosed中はインスタンス変数とか触っちゃダメですか?
0081デフォルトの名無しさん
2016/04/12(火) 21:36:54.69ID:u71GHm0/埒があかねえ
それが嫌なら質問かプログラミングのいずれかを辞めろ
向いてないお前
0082デフォルトの名無しさん
2016/04/13(水) 00:36:45.26ID:7/Vts1VO0083デフォルトの名無しさん
2016/04/13(水) 00:54:41.60ID:PNhaRHoO0084デフォルトの名無しさん
2016/04/13(水) 18:28:48.21ID:bkBwVfdDすいません解決しました
0085デフォルトの名無しさん
2016/04/13(水) 19:07:31.62ID:Q89XOWSPUIスレッド以外からフォームを触るときInvokeメソッドを使いなさいと教わったんですが
こういう書き方しかできないのでしょうか?
デリゲートやイベント等でもっとスマートにかけないんですか?
http://ideone.com/dwJo9z
0086デフォルトの名無しさん
2016/04/13(水) 19:24:19.69ID:ihuFOFJr0087デフォルトの名無しさん
2016/04/13(水) 19:27:52.57ID:ihuFOFJr劇的に楽になると思います
あなたの抱えている問題を知らないので私はなんとも言えませんが
別スレッドからFormを触れたいってのは
手段であって目的ではないですよね
目的を書いた方がいいですよ
0088デフォルトの名無しさん
2016/04/13(水) 20:50:54.83ID:Q89XOWSPformのtextboxにAsyncMethodクラスのログ(状態)を表示したいんです
たとえば「今〜を処理中です」のメッセージや、進行状況等です
0089デフォルトの名無しさん
2016/04/13(水) 20:56:47.92ID:VkP3x0ag0090デフォルトの名無しさん
2016/04/13(水) 21:01:25.43ID:qcaBioTQCancellationTokenSourceを使う
How to: Cancel a Task and Its Children
https://msdn.microsoft.com/ja-jp/library/dd537607%28v=vs.110%29.aspx
0091デフォルトの名無しさん
2016/04/13(水) 21:25:58.88ID:SAr8RNES処理は細切れにできんの?
まあ途中経過伝えるくらいだからできるんだろうけど
await Taskである程度処理
状態通知
await Taskである程度処理
状態通知
以降繰り返し
と書けるならスレッドを意識して使う必要はない
0092デフォルトの名無しさん
2016/04/13(水) 21:27:33.66ID:VkP3x0agありがとうございます
できたっぽいです
やっぱりこれしかないんですかね
ググってもみつからない
0093デフォルトの名無しさん
2016/04/13(水) 21:28:05.59ID:MNjDWxQiとりあえずいくらマネージドとはいえThreadはもう直接使用しません
現在の非同期処理はTaskをベースとしたTAPパターンを使います
基本的にはUIハンドラでawait Taskしてメソッドを非同期にしますが、(Taskを別に待機した後UIに戻る)
起点に依ってはUIスレッドでProgress<T>を作り、IProgress<T>として渡しReport(T)させます
new Progress<string>(textBox1.AppendText)とか、これはSynchronizationContext.Post()のラッパーです
その他、UIスレッドで取得したTaskScheduler.FromCurrentSynchronizationContext()を
Task.ContinueWith()に渡して継続タスクのスケジューラをUIスレッドに指定したりもします
書き方としてはawaitがスマートですが実装的にはyieldのような糖衣構文なので内部は複雑です
0094デフォルトの名無しさん
2016/04/13(水) 21:34:41.71ID:ou7cKYoKほい。http://ideone.com/0QAKVO
TaskScheduler.FromCurrentSynchronizationContext()とか使ったやつ
0095デフォルトの名無しさん
2016/04/13(水) 21:45:47.24ID:ou7cKYoKtask = Task.Delay( 10000 ).ContinueWith( ( task ) => f1.textBox1_AppendText("10秒たちました"), uiContext );
って書いた方が少しスマートか。
0096デフォルトの名無しさん
2016/04/14(木) 00:05:48.84ID:fAR3CNDjそういう用途のためにIProgress<T>ってものが存在しますのでググってみると良いと思いますよ
0097デフォルトの名無しさん
2016/04/14(木) 00:52:22.66ID:xmEGevwc0098デフォルトの名無しさん
2016/04/14(木) 01:25:44.82ID:V0fKG/mP0099デフォルトの名無しさん
2016/04/14(木) 01:41:45.78ID:ODCDQP4xhttps://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.formclosing(v=vs.110).aspx
>Occurs before the form is closed.
って一番上に書いてあるやんけ!!
0100デフォルトの名無しさん
2016/04/14(木) 10:24:49.60ID:FMI1MKs2今のところ出た時はソフトを再起動させてますので・・・
https://oliversturm.com/2005/03/23/red-x/
0101デフォルトの名無しさん
2016/04/14(木) 11:09:44.69ID:I/JV89BY読めねえ!!!!
■ このスレッドは過去ログ倉庫に格納されています