「どんなにくだらない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
探検
ふらっと C#,C♯,C#(初心者用) Part134
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 0f9a-KsIq)
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0827デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/02(金) 22:39:44.98ID:dT49NCpma 間違い
/*は*/を読み捨てしたらダメだなw
/*は*/を読み捨てしたらダメだなw
828デフォルトの名無しさん (ワッチョイ 1705-CU+w)
2018/02/02(金) 22:40:01.25ID:pft3AbU10 パーサジェネレータ使えよ
829デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/02(金) 22:48:59.30ID:Zl28+evz0 >>826
それがわからない
文字列リテラルなのかコメントなのか判断できない
ダブルコーテーションから判定するとそれがコメントだったとき駄目
コメントから判定するとそれが文字列リテラルだったとき駄目
っていうパラドックス
それがわからない
文字列リテラルなのかコメントなのか判断できない
ダブルコーテーションから判定するとそれがコメントだったとき駄目
コメントから判定するとそれが文字列リテラルだったとき駄目
っていうパラドックス
830デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/02(金) 22:52:11.72ID:dT49NCpma831デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/02(金) 22:56:57.54ID:dT49NCpma 急がないならどれかの言語のコードでもじっくり読んで勉強したらいい
大体の言語はオープンソースなので好きなのをやればいい
ただしc++の知識ぐらいはいる
急ぐならテストパターンを十分に用意して手あたり次第やればいい
大体の言語はオープンソースなので好きなのをやればいい
ただしc++の知識ぐらいはいる
急ぐならテストパターンを十分に用意して手あたり次第やればいい
832デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/02(金) 23:08:58.70ID:Zl28+evz0833デフォルトの名無しさん (ワッチョイ 57b3-E/qE)
2018/02/02(金) 23:10:39.49ID:z7oDIr3g0 >同じ行の前側みて
うん、かなり無茶苦茶だな
先頭から順に読んでいって、「今は文字列リテラル中」とか「今はコメント中」とかの状態を保持しておけよ
うん、かなり無茶苦茶だな
先頭から順に読んでいって、「今は文字列リテラル中」とか「今はコメント中」とかの状態を保持しておけよ
834デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/02(金) 23:15:27.28ID:dT49NCpma 独自言語の解析してるんだろ?
他の部分が出来てるなら
普通に頭から読んでって "が出たらリテラルフラグオンにして
//が出たら行末まで読み捨て
/*だったら次の*/がでるまで捨てるだけ
何も難しくない
他の部分が出来てるなら
普通に頭から読んでって "が出たらリテラルフラグオンにして
//が出たら行末まで読み捨て
/*だったら次の*/がでるまで捨てるだけ
何も難しくない
835デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/02(金) 23:17:24.91ID:dT49NCpma 文字が抜けた
"が出たらリテラルフラグオンにして仕様通りリテラルを最後まで読み切るだけ
"が出たらリテラルフラグオンにして仕様通りリテラルを最後まで読み切るだけ
836デフォルトの名無しさん (ワッチョイ 7703-skLA)
2018/02/02(金) 23:18:02.29ID:HOyQOl0G0 独自言語が逐次実行される前提で話してるな
837デフォルトの名無しさん (ワッチョイ 57b3-E/qE)
2018/02/02(金) 23:18:46.57ID:z7oDIr3g0 もしかして、1文字ずつじゃなく1行ずつ読み込んでるんじゃないだろうな
838デフォルトの名無しさん (ワッチョイ 57b3-E/qE)
2018/02/02(金) 23:22:20.25ID:z7oDIr3g0839デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/02(金) 23:24:38.81ID:yHy9QEH1a840デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/02(金) 23:24:41.10ID:dT49NCpma841デフォルトの名無しさん (ワッチョイ 7717-j4Dg)
2018/02/02(金) 23:24:55.99ID:ErA95Rap0 >>834-835で答えが出てるのでこれ以上はスレの無駄遣い
842デフォルトの名無しさん (ワッチョイ 7703-ggKF)
2018/02/02(金) 23:27:13.14ID:HOyQOl0G0 >>838
横ぐるまを押したか
横ぐるまを押したか
843デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 00:00:03.20ID:S/Wa3aFw0844デフォルトの名無しさん (ワッチョイ bf7f-qlLX)
2018/02/03(土) 00:06:47.29ID:pHRpw+FT0 >>843
そんなのはルール次第
そんなのはルール次第
845デフォルトの名無しさん (ワッチョイ d780-miZj)
2018/02/03(土) 00:15:01.77ID:NdjAbgSB0 例えばC#なら@""で改行入れられるし
846愛知人!id:ignore (ワッチョイ 9775-jUAt)
2018/02/03(土) 00:17:09.98ID:GkUi/Itq0 そのときだけ行またげばいいだけだし
847デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 00:34:25.55ID:S/Wa3aFw0848デフォルトの名無しさん (ワッチョイ 57b3-E/qE)
2018/02/03(土) 00:38:09.24ID:AuUEv0AE0 知らんかったんかいw
コメントは削除するんでなく、「読み捨てる」んだ
コメントは削除するんでなく、「読み捨てる」んだ
849デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 00:41:40.01ID:S/Wa3aFw0 >>848
いや、似非c#だからそんなことできんだろと
いや、似非c#だからそんなことできんだろと
850デフォルトの名無しさん (ブーイモ MMfb-+DFt)
2018/02/03(土) 00:53:02.56ID:PxR3gYBlM ヒアドキュメントを除いたとしてもしソースの先頭の/*をどうやってみつける?
状態を持たないならソースの頭までさかのぼるしかない
状態を持たないならソースの頭までさかのぼるしかない
851デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 00:58:38.87ID:S/Wa3aFw0 >>850
いや、今のルーチンはコメントの削除からやってるのよ
いや、今のルーチンはコメントの削除からやってるのよ
852デフォルトの名無しさん (ワッチョイ b781-j4Dg)
2018/02/03(土) 01:03:27.72ID:OVqIgYtY0 コメントも文字列も先に始まったほうが勝つからどうしょうもない
853デフォルトの名無しさん (ブーイモ MMfb-+DFt)
2018/02/03(土) 01:06:21.86ID:PxR3gYBlM 質問しといて聞かないパターン=成長しない初心者パターン
854デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 01:12:38.71ID:xyf2cJ8Ka ただ悩みを聞いて欲しかったんじゃないですか
女の相談事みたいなw
まあ、どうせ人も減ってるしそれもありでしょう
女の相談事みたいなw
まあ、どうせ人も減ってるしそれもありでしょう
855デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 01:24:32.23ID:S/Wa3aFw0856デフォルトの名無しさん (ワッチョイ 9fc3-Z3C6)
2018/02/03(土) 08:34:38.62ID:WhjNgY2U0857デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 09:02:44.63ID:LvTBogUR0 swich() { case xxxx: ~
xxxxに変数をつかいたいのだが、switchに変わるものってなに?
xxxxに変数をつかいたいのだが、switchに変わるものってなに?
858デフォルトの名無しさん (ワッチョイ d780-lEY8)
2018/02/03(土) 09:33:50.59ID:NdjAbgSB0 if
859デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 09:53:42.04ID:nKXUpnsB0 >>857
xxxが数値か文字列なら変数だろうと使えたはずです。オブジェクトの場合、同値の判定が基本型のように単純じゃないから無理。
xxxが数値か文字列なら変数だろうと使えたはずです。オブジェクトの場合、同値の判定が基本型のように単純じゃないから無理。
860デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 10:50:39.85ID:LvTBogUR0 switchi( (button)sender) ){
case Button1: ~
case Button2:~
case Button3:~
}
こんな感じのことがしたい。
〜はMethod()でいいので、
void switch_tb()= {
{Button1, Method1}
{Button2, Method2}
{Button3, Method3}
}
switch_suru((button)sender);
こんなことできんか?
case Button1: ~
case Button2:~
case Button3:~
}
こんな感じのことがしたい。
〜はMethod()でいいので、
void switch_tb()= {
{Button1, Method1}
{Button2, Method2}
{Button3, Method3}
}
switch_suru((button)sender);
こんなことできんか?
861デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 10:52:21.97ID:LvTBogUR0 C#はメソッドの中のローカルメソッドってできへんの?
862デフォルトの名無しさん (ワッチョイ fffa-K3c3)
2018/02/03(土) 11:00:14.66ID:VOrllN0n0 >>860
素直にButtonのNameプロパティ使え
素直にButtonのNameプロパティ使え
863デフォルトの名無しさん (ワッチョイ ffc9-wbgk)
2018/02/03(土) 11:01:41.64ID:Ns10a1iN0 >>861
C#7で出来るようになったよ
C#7で出来るようになったよ
864デフォルトの名無しさん (ワッチョイ f783-j4Dg)
2018/02/03(土) 11:41:19.78ID:ZFgrbY8z0 糞化が止まらないのか。
865デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/03(土) 12:15:40.34ID:7uT3RC1La メソッド内メソッドは無くてもいい機能
メンバー封じ込めの方法はいくらでもあるし
ないほうがエラー見つけやすいと個人的には思う
メンバー封じ込めの方法はいくらでもあるし
ないほうがエラー見つけやすいと個人的には思う
866デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 12:24:29.31ID:LvTBogUR0 いい方法をみーつけ
867デフォルトの名無しさん (オッペケ Srcb-ggKF)
2018/02/03(土) 12:24:59.79ID:ROxRBp/zr バグだろwなにちょっと誤魔化そうとしてんのw
868デフォルトの名無しさん (スッップ Sdbf-uiFW)
2018/02/03(土) 12:29:16.06ID:0dr4TWncd >>864
言語の変化についていけないやつの糞化な
言語の変化についていけないやつの糞化な
869デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 12:30:20.78ID:nKXUpnsB0870デフォルトの名無しさん (アウアウウー Sa5b-+DFt)
2018/02/03(土) 12:31:12.90ID:7uT3RC1La メソッド内メソッドはjavaでずっと使ってたけど
クラスを小さくしていくと使う場面は限られていく
クラスを小さくしていくと使う場面は限られていく
871デフォルトの名無しさん (ワッチョイ 1705-CU+w)
2018/02/03(土) 12:33:37.55ID:Iq/kHIZ+0 初心者っぽくていいじゃん
「この機能が存在する意味が分からないんですけど、何の役に立つんですか?」
って定番の質問じゃん
「この機能が存在する意味が分からないんですけど、何の役に立つんですか?」
って定番の質問じゃん
872デフォルトの名無しさん (ワッチョイ f783-j4Dg)
2018/02/03(土) 12:40:45.58ID:ZFgrbY8z0 使ってる奴も糞ばっかになったな。新しい機能一つ覚えただけでマウンティングしだすアホとか。
なぜその機能が糞かが理解できない脳みそ。取り巻きからして残念な言語になってしまった。
なぜその機能が糞かが理解できない脳みそ。取り巻きからして残念な言語になってしまった。
873愛知人
2018/02/03(土) 12:41:41.35 あらら、怒っちゃった(笑)
874デフォルトの名無しさん (ワッチョイ ff9a-HmOu)
2018/02/03(土) 12:43:15.80ID:8oBsvnpG0875デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 12:45:57.31ID:DOsYwXsiM 今後も言語仕様はどんどん拡張されるよ
他の言語の有名なのどんどん取り入れてってカオスになっていく
個人的には範囲指定が欲しい
1..5か1:5みたいなの
他の言語の有名なのどんどん取り入れてってカオスになっていく
個人的には範囲指定が欲しい
1..5か1:5みたいなの
876愛知人
2018/02/03(土) 12:50:20.68 Enumerable.Rangeじゃだめなん?
877デフォルトの名無しさん (ワッチョイ 7717-j4Dg)
2018/02/03(土) 12:51:56.63ID:8eNVn+fl0 >>874
せめてnameof使って書けよ
せめてnameof使って書けよ
878デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 12:56:57.86ID:DOsYwXsiM foreach(var i in Enumerable.Range(1,5))
foreach(var i in 1..5)
どっちがいい?
foreach(var i in 1..5)
どっちがいい?
879デフォルトの名無しさん (ワッチョイ 7717-j4Dg)
2018/02/03(土) 12:58:29.57ID:8eNVn+fl0 圧倒的に上
880デフォルトの名無しさん (ワッチョイ d79b-CNA0)
2018/02/03(土) 13:02:13.44ID:kCPWN5tp0 >>860
ButtonのTagにやりたいこと突っ込んどけ
ButtonのTagにやりたいこと突っ込んどけ
881デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 13:06:02.52ID:DOsYwXsiM いい方法
buttun1.Click=>{Method1();};
buttun1.Click=>{Method1();};
882デフォルトの名無しさん (ワッチョイ f783-j4Dg)
2018/02/03(土) 14:17:08.45ID:ZFgrbY8z0 どう書いたらいいか分からないのが糞言語の証左。
883デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:26:42.67ID:LvTBogUR0884デフォルトの名無しさん (スッップ Sdbf-Ismr)
2018/02/03(土) 15:30:37.45ID:d68F6UhId885デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:33:25.80ID:LvTBogUR0 var aa = ((Button)sender).Equals(button1) ? func1() :
((Button)sender).Equals(button2) ? func2() :
func2();
これどう?
((Button)sender).Equals(button2) ? func2() :
func2();
これどう?
886デフォルトの名無しさん (ワッチョイ ff9a-HmOu)
2018/02/03(土) 15:34:12.79ID:8oBsvnpG0 >>884
ButtonのName変更ってどんな実装に必要なんだよ・・・
ButtonのName変更ってどんな実装に必要なんだよ・・・
887デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:39:26.04ID:LvTBogUR0 >ButtonのName変更ってどんな実装に必要なんだよ・・・
最初はBUtton1だろ。出来上がって綺麗に整理するときにbtnSetParamとか分かりやすく書き換える。
最初はBUtton1だろ。出来上がって綺麗に整理するときにbtnSetParamとか分かりやすく書き換える。
888デフォルトの名無しさん (ワッチョイ ff9a-HmOu)
2018/02/03(土) 15:40:26.14ID:8oBsvnpG0 >>885
それならEqualsじゃなくてsender==button1?でいいよ。キャストもいらない
それならEqualsじゃなくてsender==button1?でいいよ。キャストもいらない
889デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:40:45.84ID:LvTBogUR0 Button.Nameをつかうくらいなら、Tagに書き込んだ方がまし。
890デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:41:39.80ID:LvTBogUR0 >888
あ、そうなん?
あ、そうなん?
891デフォルトの名無しさん (スッップ Sdbf-Ismr)
2018/02/03(土) 15:43:31.84ID:d68F6UhId 実装後にスペルミスに気付いた、他の画面との兼ね合いで名称を統一することになった、仮の名前をちゃんとした名前に置き換えた、とか色々あるだろ
リフレクションでデータ取得する方針のせいでガチガチに名前が決められている画面を作らされたときの面倒さったらなかったわ
リフレクションでデータ取得する方針のせいでガチガチに名前が決められている画面を作らされたときの面倒さったらなかったわ
892デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 15:43:52.16ID:LvTBogUR0 キャストしないとインテリセンスがでないから、キャストしたほうがいいよ。
893デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 16:57:11.29ID:Rh9ysymEa こんなの考えたが、
public class CaseAction
{
public CaseAction(object @object, Action action)
{
Object = @object; Action = action;
}
public Action Action { get; private set; }
public object Object { get; private set; }
}
public static class Extensions
{
public static void Switch(this object o, params CaseAction[] caseActions)
{
caseActions.FirstOrDefault(x => x.Object == o)?.Action();
}
}
やっぱり使いづらそうだなw
ところで書いててちょっと思ったけど、==演算子の動作って隠蔽(new)と同じように変数の型に
依存するのか、それともオーバーライドと同じようにオブジェクトの型に依存ずるのか、どっちだっけ?
public class CaseAction
{
public CaseAction(object @object, Action action)
{
Object = @object; Action = action;
}
public Action Action { get; private set; }
public object Object { get; private set; }
}
public static class Extensions
{
public static void Switch(this object o, params CaseAction[] caseActions)
{
caseActions.FirstOrDefault(x => x.Object == o)?.Action();
}
}
やっぱり使いづらそうだなw
ところで書いててちょっと思ったけど、==演算子の動作って隠蔽(new)と同じように変数の型に
依存するのか、それともオーバーライドと同じようにオブジェクトの型に依存ずるのか、どっちだっけ?
894デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 20:30:42.15ID:nKXUpnsB0 ふと思ったが、ふつうにそれぞれのボタンのイベントに実装したらダメなの
895デフォルトの名無しさん (ワッチョイ 9fb3-mP5N)
2018/02/03(土) 20:34:51.83ID:Zh144c7Y0 >>894
ほとんど共通でボタン毎にちょっとだけ処理が違うとかじゃね
ほとんど共通でボタン毎にちょっとだけ処理が違うとかじゃね
896デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:11:27.96ID:LvTBogUR0 グループボックスにボタンを貼り付けて、それをコピーして貼り付けると、イベントが同じところになるだろ。
だからエディット都合だな。
イベントで分けるのが一番いい方法かもしれない。w
だからエディット都合だな。
イベントで分けるのが一番いい方法かもしれない。w
897デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:13:35.51ID:LvTBogUR0 再表示するために tabPage1.Controls.Add(grp);で追加したgrpだけをクリアするにはどうしたらいいの?
tabPage1.Controls.Clear(); やるとボタンが消えてしまう。
tabPage1.Controls.Clear(); やるとボタンが消えてしまう。
898デフォルトの名無しさん (ワッチョイ 9f60-w+Fq)
2018/02/03(土) 21:27:16.93ID:nKXUpnsB0 Controlsプロパティの型はControl.ControlCollectionで
そのクラスのドキュメントを見ましょう。
Remove(Control)というのがあったのでそれで削除できそうです。
そのクラスのドキュメントを見ましょう。
Remove(Control)というのがあったのでそれで削除できそうです。
899デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:35:57.81ID:LvTBogUR0 Removeを使うのはわかるんだが、要するになにがしたいのかというと
Linqを使ってControlsにAddしたGroupBoxだけを選択して、クリアしたいということ。
その書き方がわからない。ということ。
Linqを使ってControlsにAddしたGroupBoxだけを選択して、クリアしたいということ。
その書き方がわからない。ということ。
900デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 21:39:38.95ID:SzFJuxtQa 再表示とかクリアとか俺様な用語法されても何言ってるのか分からないよw
901デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:46:23.78ID:LvTBogUR0 tabPage1に貼り付けたコントロール群をLinqを使って選択的に消去したいということ。これでもわからん?
902デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 21:49:30.86ID:DOsYwXsiM903デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 21:52:32.07ID:DOsYwXsiM 煽って悪かったけど
その書き方じゃ誰にもつたわらないよ
意味がわからないけどgrpを消したいならgrpをどこかに記録しておけばいい
終わり
はい次の方〜
その書き方じゃ誰にもつたわらないよ
意味がわからないけどgrpを消したいならgrpをどこかに記録しておけばいい
終わり
はい次の方〜
904デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:54:28.34ID:LvTBogUR0 解決した。w
905デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 21:55:50.09ID:DOsYwXsiM906デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 21:57:07.86ID:LvTBogUR0 >903
Keyになる言葉の意味がわからないと解らないと思うよ。それが解る人にはわかる。
Keyになる言葉の意味がわからないと解らないと思うよ。それが解る人にはわかる。
907デフォルトの名無しさん (ワッチョイ 9fd2-uiFW)
2018/02/03(土) 21:59:39.27ID:bTwAHw5A0 なんでこいつこんなに偉そうなの?
908デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 22:00:08.72ID:DOsYwXsiM 小学生だから
909デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 22:08:58.48ID:SzFJuxtQa var toRemove = tabPage1.Controls.Cast<Control>().FirstOrDefault( .... );
if (toRemove != null)
tabPage1.Controls.Remove(toRemove);
これを1行にしたいってことだったのかな?
拡張メソッド使ってControl側に自分を包含するコンテナのControlCollectionを
引数に撮るメソッドを定義しないとできない気がする
何でもいいけど、冗長でもいいから分かるように書いて欲しいよね
if (toRemove != null)
tabPage1.Controls.Remove(toRemove);
これを1行にしたいってことだったのかな?
拡張メソッド使ってControl側に自分を包含するコンテナのControlCollectionを
引数に撮るメソッドを定義しないとできない気がする
何でもいいけど、冗長でもいいから分かるように書いて欲しいよね
910デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 22:13:41.72ID:LvTBogUR0 そんな書き方しかでけん?
911デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 22:16:15.65ID:DOsYwXsiM912デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 22:23:57.61ID:SzFJuxtQa 無理矢理だなあ
Action<Control> removeMe = x => x?.Parent?.Controls.Remove(x);
removeMe(
tabPage1.Controls.Cast<Control>().FirstOrDefault( .... )
);
Action<Control> removeMe = x => x?.Parent?.Controls.Remove(x);
removeMe(
tabPage1.Controls.Cast<Control>().FirstOrDefault( .... )
);
913愛恥人
2018/02/03(土) 22:34:23.85 最初のレスだけで理解できる俺は天才なのか
914デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/03(土) 22:38:53.52ID:SzFJuxtQa むしろエスパー
915デフォルトの名無しさん (ブーイモ MMcf-+DFt)
2018/02/03(土) 22:43:30.44ID:DOsYwXsiM そして明後日の方向のレスに食いついてる
916デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 22:54:26.09ID:LvTBogUR0 private void button3_Click(object sender, EventArgs e)
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
foreach (var grpB in grps)
{
tabPage1.Controls.Remove(grpB);
}
}
これで一回で消えないのは何故だろう? grpsには全部のグループボックスが
入っている。しかしforeachでところどころ飛ばしてしまう。
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
foreach (var grpB in grps)
{
tabPage1.Controls.Remove(grpB);
}
}
これで一回で消えないのは何故だろう? grpsには全部のグループボックスが
入っている。しかしforeachでところどころ飛ばしてしまう。
917デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:19:59.77ID:LvTBogUR0 あっ、謎がとけた。けっこう落とし穴だな。
918デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:32:01.66ID:LvTBogUR0 ケツから消していくとうまくいくんだろきっと。
まえからでもこうやるとうまく行く。
private void button3_Click(object sender, EventArgs e)
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
List<GroupBox> gg = new List<GroupBox>();
foreach (var grp in grps)
{
gg.Add(grp);
}
foreach (var grpB in gg)
{
tabPage1.Controls.Remove(grpB);
}
}
まえからでもこうやるとうまく行く。
private void button3_Click(object sender, EventArgs e)
{
var grps = tabPage1.Controls.Cast<Control>().Where(c => c is GroupBox );
List<GroupBox> gg = new List<GroupBox>();
foreach (var grp in grps)
{
gg.Add(grp);
}
foreach (var grpB in gg)
{
tabPage1.Controls.Remove(grpB);
}
}
919デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:33:46.33ID:LvTBogUR0 さて、原理は分ったが、これを1行で書くにはどうするのか?
920愛恥人
2018/02/03(土) 23:40:30.32 逆にグループボックス以外を抽出してからパネルの中身全消去からの追加とかはどうかな(>_<)
921デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 23:40:55.06ID:OIRW+vs20 >>919
改行全部消せばいいじゃん
改行全部消せばいいじゃん
922デフォルトの名無しさん (ワッチョイ bf7f-qlLX)
2018/02/03(土) 23:43:21.17ID:pHRpw+FT0923デフォルトの名無しさん (ワッチョイ f7e3-uppE)
2018/02/03(土) 23:43:41.06ID:OIRW+vs20924デフォルトの名無しさん (ワッチョイ 179d-mIUl)
2018/02/03(土) 23:49:22.30ID:LvTBogUR0 >920 それ、俺もちょっと考えた。
>921 それは最終手段にとっておいたのに。
Reverse()ってあるんか? それだ!!
>921 それは最終手段にとっておいたのに。
Reverse()ってあるんか? それだ!!
925デフォルトの名無しさん (アウアウエー Sadf-Og17)
2018/02/04(日) 00:42:43.56ID:OrIb/jt1a もう気が済んだかもしれんけど、無理に何でもインラインで書こうとして
可読性落とすなんて愚の骨頂で、普通にメソッドに外だし(別に拡張メソッドじゃなくてもいいけど)
した方がいいと思うけどね
public static class Extensions
{
public static void RemoveChildren(this Control control, Func<Control, bool> predicate)
{
var controls = control.Controls;
controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x));
}
}
可読性落とすなんて愚の骨頂で、普通にメソッドに外だし(別に拡張メソッドじゃなくてもいいけど)
した方がいいと思うけどね
public static class Extensions
{
public static void RemoveChildren(this Control control, Func<Control, bool> predicate)
{
var controls = control.Controls;
controls.Cast<Control>().Where(predicate).ToList().ForEach(x => controls.Remove(x));
}
}
926デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
2018/02/04(日) 05:54:59.74ID:vxeWu10H0 https://qiita.com/taigaaa2/items/7f05ad950a57033892ae
この方法で値を保存しているのですが
cドライブに保存されている様でプログラムを他のPCに移すなどすると値が保持されていません
どうすれば他のPCでも記憶した値を使える様になるでしょうか
この方法で値を保存しているのですが
cドライブに保存されている様でプログラムを他のPCに移すなどすると値が保持されていません
どうすれば他のPCでも記憶した値を使える様になるでしょうか
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 【高市悲報】インドネシアの山が大爆発。日本への影響調査中。2025/11/19 19:35 [253245739]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
- 【高市悲報】北朝鮮🇰🇵、大人しすぎるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [573041775]
- 【👊専】ロケット🚀👊😅👊🚀パーンチww🏡
