1 名前:デフォルトの名無しさん [2019/10/07(月) 20:16:17.93 ID:9eyAES450.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980 を踏んだ人は新スレを建てて下さい。>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part144 https://mevius.5ch.net/test/read.cgi/tech/1563258983/ ■関連スレ C#, C♯, C#相談室 Part95 https://mevius.5ch.net/test/read.cgi/tech/1508168482/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ ・Insider.NET > .NET TIPS - @IT https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html ・DOBON.NET .NET Tips https://dobon.net/vb/dotnet/index.html VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 20:48:30.84 ID:mLA0yK1I0.net] 乙
3 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 23:08:42.11 ID:4esZ9KBu0.net] c# windowsフォームにファイルをドラッグ&ドロップしたらファイルのパスを取得みたいなコードはネットにありますし、そのままビルドしたら正常に動作しましたので良いのですが、 ファイルをドラッグした瞬間にパスを取得することは出来ますか?
4 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 23:10:15.53 ID:WkkYpHG50.net] はい
5 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 23:12:19.73 ID:QEMDFqtE0.net] うん
6 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 23:36:38.52 ID:/mGKDAACa.net] >>3 普通にやると一番早く取得できるのはDragEnterやDragOverイベントかな もしドラッグを始めた瞬間に取得したいのなら 全プロセスに対してOle32.dllのDoDragDrop呼び出しをフックして プロセス間通信でパスを通知、とすれば出来るのかもしれないけど初心者がすることではなさそう
7 名前:デフォルトの名無しさん [2019/10/08(火) 10:56:30.06 ID:2mFIneqB0.net] 質問失礼します textboxに入力を終えて確定したことを知り自動的に フォーカスをtextboxから別の決まったコントロール(buttonとか)に移動したいのですが フォーカス移動のコードをどこにどう書いたらいいのか分かりません
8 名前:デフォルトの名無しさん [2019/10/08(火) 12:49:06.43 ID:8dDmccAua.net] >>7 ケースバイケースでは? 同じ機能のTextBoxが一つしかなく、他で使いまわす予定もないなら Formに書けば十分。 複数使いたかったり汎用的で他で使いまわしたいなら (a) TextBoxを継承してそこに書く (b) UseControlにTextBoxとButtonをペアで配置してUseControlにフォーカス移動のコードを書く このいずれか。
9 名前:デフォルトの名無しさん [2019/10/08(火) 13:32:25.44 ID:2mFIneqB0.net] >>8 ありがとうございます なるほど、(a)かなあ ところでtextboxの入力が確定したことをどうやって取得すればいいのかも分からないんです それも教えてください、すみません!
10 名前:デフォルトの名無しさん [2019/10/08(火) 13:36:59.57 ID:2mFIneqB0.net] あ、それはTextプロパティが変化したかどうかを見ればいいのか? でもそれじゃイベントハンドラがどうしたらいいのか分からない Textの変更を始めたというイベントハンドラって取得できるんですかね?
11 名前:デフォルトの名無しさん [2019/10/08(火) 13:52:29.59 ID:2mFIneqB0.net] それも駄目か やっぱり何らかの方法で変更が終了して リターンを押して確定したことを取得しないといけないよね?
12 名前:デフォルトの名無しさん [2019/10/08(火) 14:15:27.36 ID:2mFIneqB0.net] わかった _TextChangedか! ありがとうございました
13 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 17:51:14.93 ID:Ibd7T+CL0.net] 昔だったらkillforcusなんだけど c#はなんだろう?
14 名前:デフォルトの名無しさん mailto:sage [2019/10/08(火) 17:55:02.19 ID:Ibd7T+CL0.net] あった多分これで検索すれば c# textbox validated event
15 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 07:55:59.19 ID:/K0h5hCH0.net] WPFアプリにてタスクバープレビューの右上の閉じるボタンから閉じた時のイベントを取得することは出来ないのでしょうか? 上記の方法で閉じると一見終了されたように見えてもプロセスは残ってしまうため、メインウィンドウの閉じるボタンを押したときに呼ばれる後処理メソッドを呼ばせたいのですが
16 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 08:46:37.34 ID:zdauYmXS0.net] こっちの環境では普通にClosedイベント発生してるし特殊な終わり方はしてないようだが…
17 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 08:50:50.65 ID:Y6sBp1G90.net] どういう方法で閉じようと、ClosingやClosedは経由するよな
18 名前:デフォルトの名無しさん [2019/10/09(水) 16:30:31.60 ID:31sFMC5w0.net] C# + Oracleで自社内向け業務アプリ作ることになったんだけど、..net coreでなく、net frameworkのWinFormsでいいよね? ユーザーはせいぜい1200人程度なんだけど、.net coreランタイム入れる手間を考えたくない。 WinFormsって結構大きなデメリットになったりする?
19 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 16:45:47.71 ID:KnJFPOSX0.net] Formで複数のNumericUpDownを使ってます 値の変化はValueChangedイベントを使用してます あるNumericUpDownを変化すると別のも連動します 値を変える場合一時的にイベントハンドラを無効にしてます 今は-=で無効にしてますが他にイベントハンドラを無効にする方法はありますか?
20 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 16:47:28.10 ID:faTZyW/Hd.net] 勘違いしてるみたいだけど.NET coreはインストール不要(自己完結型)でビルドできるよ
21 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 20:11:01.90 ID:bRqP1Lm30.net] CoreってGUI作れるようになったん?
22 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 20:29:41.44 ID:BQgggoCY0.net] core調べてみたら便利そうだな 調べるうちにだんだんUWPとWPFの違いが分からんようになった WPFでUWPのコントロール使えるなら、UWPは制限きついだけか?
23 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 20:36:12.50 ID:mYLA6NTyM.net] Win限定なら作れる でも現実にはある程度のユーザー数のある業務アプリなら.NET Framework の方が遥かに配布は楽だよ ClickOnceが使えるからね .NET CoreはSCDができるのはいいけど、配布や更新に関して良くも悪くも単なるexeができる以上のサポートは何もない ヘタにzipで配っちゃったら後で地獄を見ることになる
24 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 20:42:22.99 ID:mYLA6NTyM.net] あと、今から業務アプリを新規に作るんならそもそもクライアントアプリではなくWebにすべきだ Webなら配布の心配なんか最初から要らないし、.NET開発におけるメインストリームだから情報も豊富だし将来性もある
25 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 21:05:50.95 ID:DtVKrlfY0.net] >>23 MSIX
26 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 01:06:13.89 ID:8ioradGx0.net] >>19 フラグ使ってイベントハンドラの入り口でreturn
27 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 11:00:47.70 ID:EXU1k5cj0.net] 質問なんですが DataGridViewでテーブルを表示させてるんですが、中のデータを変更してもDataGridViewが更新できません class Person { public int ID; public string Name; } class PersonList { public List<Person> Data { get; } public PersonList() { new Person { ID = 1, Name = "tanaka" }; new Person { ID = 2, Name = "kimura" }; } } PersonList personList = new PersonList(); DataGridView1.DataSource = personList.Data; 今は無理やりデータソースを一度Nullにして消して再読み込みしていまうs private void Button1_Click(object sender, EventArgs e) { DataGridView1.DataSource = null; DataGridView1.DataSource = personList.Data; } これでは画面が一度消えてちらついたり、セル幅がリセットされたり、いまいちです DataGridViewの再読み込み再描画でうまい方法あるでしょうか?
28 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 11:06:31.69 ID:dY7xsk310.net] PersonにはINotifyPropertyChangedを実装して 各プロパティのsetでPropertyChangedイベントを発生させる 要素の追加削除に対応するならList<T>の代わりにBindingList<T>を使う
29 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 16:37:05.29 ID:EXU1k5cj0.net] >>28 さんくすです 何やらうまくいきそうな感じですが、実際に書くのは難しそうです 少し調べてみます
30 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 19:37:58.48 ID:+cMNiUZhM.net] ASP.NET(VS2013) でWebアプリを作っています。 データベースから取得したデータをGridViewにBindしています。 特定のカラムを編集したくて OnDataBound イベントにて以下のようにしてTextBoxを追加しました。 foreach (GridViewRow rw in GridView1.Rows) { TextBox txt = new TextBox(); txt.Text = rw.Cells[2].Text; rw.Cells[2].Controls.Add(txt); } この後、TextBoxの値を取得したいのですが、 foreach (GridViewRow rw in GridView1.Rows) { TextBox txt = (TextBox)rw.Cells[2].Controls[0]; xx = txt.Text; } ではうまくいきません。Controlsがないようです。 どうすればTextBoxの値を取得できるでしょうか。
31 名前:デフォルトの名無しさん [2019/10/10(木) 19:39:53.55 ID:i+8+28k+F.net] ・extBox txt = (TextBox)(rw.Cells[2]).Controls[0];
32 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 20:08:53.90 ID:aBdkLcoOM.net] >>31 >>30 です。 ダメです。〜.Controls.Countが0なので、インデックスの範囲外になってしまいます。
33 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 21:29:45.48 ID:kk1CdJ+b0.net] ProcessクラスにはDispose()があるようですが、 var processes = Process.GetProcesses(); とした時点で上記のProcess[]内のProcessたちを全てDispose()しないとメモリリークなどしてしまうのでしょうか? それとも実際にハンドルなどを参照したものだけDispose()すれば良いのでしょうか?
34 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 21:39:45.74 ID:afa4sCIxa.net] >>33 https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/Process.cs,1554 ReferenceSourceを見ると GetProcessesByName()が内部でGetProcesses()を使っていて、それの戻り値配列に使わない場合はDispose()しているから GetProcesses()を直接呼び出している場合でも戻り値配列の各ProcessをDispose()したほうが良さそう GC管理下にあるからDisposeを呼び忘れていても、ファイナライザが呼び出されて少なくともメモリーは回収されるとは思う
35 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 21:49:47.76 ID:kk1CdJ+b0.net] >>34 ありがとうございます 一応全く使わないProcessもDisposeしておくことにします
36 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 21:51:48.13 ID:IMCrZqO+0.net] クラスA内にインスタンスメソッドBがあったとして、長くなってしまったから一部をメソッドCとして外に出すとします このCはBから呼び出される以外どこからも参照されません。本当にちょっと分離するためだけに分けているのです このときCの修飾子はどうするのがいいのでしょうか。publicは論外として、ただ単にprivateでいいんですかね staticとかつけた方がいいですか?クラス内で変な使われ方するのを防いだ方がいいかなとか思ったのですが
37 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 22:11:44.95 ID:IquandTc0.net] そのソースを自分しか触らないのであればprivateでいいと思う 自分で作っているんだから変な使われ方をされることもないだろ? もし他の開発者が触る可能性があるんならローカル関数を使えばOK
38 名前:デフォルトの名無しさん [2019/10/10(木) 22:18:06.84 ID:BXM3vcse0.net] privateにしてコメントに注意書きしておけばいいと思うが メソッド名の頭にアンダースコアつけるとか DoSomethingFromBOnly()みたいな名前にしておくとか
39 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 22:21:13.96 ID:hT7PmE+00.net] 全部public クラスAを継承したクラスA2で メソッドBをちょっと変えた メソッドB2を作りたいときに メソッドCを呼べない欠陥クラス
40 名前:デフォルトの名無しさん [2019/10/10(木) 22:26:58.12 ID:PsSxAeUca.net] >>36 普通にprivateにすればOK。 誤用されるリスクは分割したメソッドに固有の問題じゃない。 それは命名と抽象化が不適切ならどのメソッドにも起こりうる。 だから分割したら誤用されるんじゃないか、って発想はかなり変だ。 staticはインスタンスメンバーを使わないなら付けるべきだが、付けたからって 誤用されるリスクが減るわけじゃない。 ローカル関数は、 (1) 分割したメソッドを何度も呼び出す。 (2) その時に必ず同じ変数を引数として渡す(それが冗長に感じる) こういうケースじゃなきゃ積極的に使う理由はない気がする。
41 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 23:44:04.64 ID:a+kHg1ZD0.net] メソッドBからしか正常に動作しないメソッドCという構図ならそもそも設計が怪しい メソッドB以外から使われることがないだろうくらいの感じなら 万一使われても別に困らないしprivateで問題ない
42 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 23:49:12.95 ID:+/bzkuJ6a.net] ローカル関数を使いたがる奴は総じてレベルが低いね
43 名前:デフォルトの名無しさん [2019/10/10(木) 23:51:17.44 ID:mQn3Hgbj0.net] グローバルおじさんが来たな
44 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 23:56:49.95 ID:hT7PmE+00.net] >>41 は? >>39 のケースで普通に困るだろ ボケてんかよ
45 名前:デフォルトの名無しさん [2019/10/10(木) 23:58:46.54 ID:mQn3Hgbj0.net] >>44 でもまあ拡張性に優れてないのは元からっぽいから、分けて書くことに始まった問題じゃないじゃん?
46 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 00:18:02.53 ID:f+9us5CU0.net] 全部publicおじさんなんかどう見ても荒らしなんだからNGに放り込んどけ
47 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 00:18:46.89 ID:vfhfRP3v0.net] >>39 のケースを解決しようととりあえずprotectedにすればいいと思うだろ? ところがメソッドB2の処理の途中に クラスXの処理を絡ませなければならないことになった しかし、クラスA2はクラスXを呼び出すと循環参照になってしまうためそれができない なのでクラスEにメソッドB3を作成することになった ときにメソッドCはprivateでは呼び出すことができない ここまで解決しようとするとメソッドCはpublicにしておくしかない そしてこれはよくあることだ
48 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 00:26:16.32 ID:i87v0bN60.net] 全部virtualだろ普通
49 名前:デフォルトの名無しさん [2019/10/11(金) 06:13:02.24 ID:YbeJbbo90.net] 皆さんは、Windowsノートパソコンで開発されてるのでしょうか? それともsurface?MacBook Pro?iPad Pro? プログラミング用にMacBookをすすめるサイトをよく見ますがC#ではやはりWindows機? 個人的にはThinkPadかなと思ってますが 皆さんはどんなもんですか
50 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 06:47:08.88 ID:MFeQoEVg0.net] デスクトップだけど
51 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 07:23:14.81 ID:e5VBdiYBM.net] >>47 > そしてこれはよくあることだ ねーよ よくあるとしたらお前の設計力が無さすぎ そもそも > メソッドBをちょっと変えた > メソッドB2を作りたいときに の時にBからB2をコピペして改変する時点でアホ丸出し
52 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 07:54:18.02 ID:vfhfRP3v0.net] >>51 え?じゃあどうするん? 話の主旨とそれるけど virtualにしてもやっぱりメソッドCは呼べんやろ それで? どうしたいって?
53 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 08:18:01.09 ID:e5VBdiYBM.net] >>52 アホすぎる… クラスAをベースクラスにして変更部分をvirtualで差し替えてA1(これが今までのA)とA2を作る 変更部分にCを呼ぶコードがあるならCはクラスA1にだけあればいい 変更部分にCを呼ぶコードがないならCはクラスAに置いとけばいい
54 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 08:20:42.62 ID:vfhfRP3v0.net] >>53 え?なんかよくわからない >>39 みたいにかけない? 継承先でメソッドCを呼ぶ必要があるときどうだって?
55 名前:デフォルトの名無しさん [2019/10/11(金) 08:24:45.95 ID:blacN5wca.net] >>50 うぅ・・
56 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 08:43:13.37 ID:Q3FyvZZg0.net] 今開発中のもので初めて例外を補足しない強制終了が起こったのですが、原因としては唯一のunsafeであるstackallocだと思われます var stack = count <= 20 ? stackalloc ulong[count] : new ulong[count]; 動的なサイズですが上記のように一応サイズ制限はしていたのですが、ulong[20](160byte)程度でもスタックオーバーフローは起こり得るんでしょうか?
57 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 08:56:19.70 ID:e5VBdiYBM.net] >>54 ちょっとは勉強しろよ... 両方の継承先で呼ぶ必要があるならベースに置けばいい どっちか片方だけでいいなら必要とする継承先に置けばいいだけ まともにコード書いたことないのか?
58 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 08:56:32.12 ID:01d3zJlsM.net] >>30 です。 何かヒント頂けないでしょうか。
59 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 09:01:19.07 ID:w9BsPIYw0.net] >>56 残りスタックが少なければ起こりうると思うけど例外吐いてないなら別の要因じゃないかと思う
60 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 09:06:03.62 ID:Nij9ynML0.net] >>56 イベントログを見てStackOverflowExceptionであることは確認した?
61 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 09:46:04.72 ID:ZRjHQIQqM.net] >>56 それコンパイル通るのか? ?の第2オペランドと第3オペランドの型があってないように見えるが
62 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 10:32:44.13 ID:4B4iU4j0a.net] >>61 https://ufcpp.net/study/csharp/resource/span/#safe-stackalloc C#7.2から出来るようになった stackallocもnewも暗黙的にSpan<T>へ変換される
63 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 11:58:36.03 ID:y81cSpJS0.net] >>57 え? 意味不明
64 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 12:32:45.04 ID:e5VBdiYBM.net] >>63 勉強不足すぎw てか多態の基本だぞ
65 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 12:59:48.32 ID:47sbrrFf0.net] >>64 え?継承元のprivateって呼べないよね?
66 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 13:49:55.26 ID:R9rR1P0/M.net] 古いコードを見ているのですが if (false) {// なにか処理} がたっくさんあるんです。 到達できないコードが検出されましたって大量に出て当たり前だよ!って 仮に何か意味があるとしたらどんな理由が考えられるでしょうか 全部消せと思うのですが何かわたしの知らないテクニックだったらまずいですし
67 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 13:49:59.05 ID:V+fiNkQ50.net] C#なら出来るでしょう
68 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 13:51:26.84 ID:IXdSVzcC0.net] テスト用なんじゃね 必要なくなったからfalseにしているだけでは
69 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 14:01:31.76 ID:w9BsPIYw0.net] テストとかデバッグ用の処理じゃないかな #if falseにすれば警告は除去できると思う
70 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 14:50:33.17 ID:Y/pxrYXGM.net] >>65 継承元のprivateを呼ぶ話なんてしてないだろ >>53 をちゃんと読めよ
71 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 16:11:04.13 ID:RwnMXNoM0.net] >>70 じゃあ、お前、一連の流れを理解しないでレス付けたな もうようないわ
72 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 16:55:31.32 ID:BNgoH63S0.net] Properties.Settings.Defaultについて教えてください DataGridViewのセル幅の設定を保存したいのですが、いい方法はあるでしょうか? セルが20個ほど並んでるのですが、Settings.SettingsにはInt[]の配列が選べないし プロパティバインディングも項目がありません、たくさんのIntを保存するにはどうしたらよいでしょか?
73 名前:デフォルトの名無しさん [2019/10/11(金) 16:55:34.98 ID:Qe/y/ERba.net] >>66 謎だねw #ifディレクティブやコメントアウトを選択しなかった理由は IDEでシンボル検索した時に引っかかるようにしたかったから、とかも考えられるけど、 まあ多分単純に書いた人がアホなだけだろうw 仮にそうう理由があるとしてもfalseなんてリテラルをそのまま書くのは意味が分からん
74 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 17:05:59.65 ID:V+fiNkQ50.net] Java屋に呪いをかけられた。
75 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 17:10:57.43 ID:Nij9ynML0.net] >>72 カンマ区切りの文字列にでもするとか
76 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 17:48:11.14 ID:6fhPxX7E0.net] json.netで文字列にして保存とか・・・そこまでやるならってのはナシで
77 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 17:58:14.17 ID:Y/pxrYXGM.net] >>71 バカの逆ギレかよ 念の為に言っておくけど元々>>47 程度の要件では派生クラスからCを呼ぶなんて必要ないってことな まあ君には一生理解できないかもしれないけどw
78 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 18:18:20.39 ID:8nYO+EkJd.net] 質問した人はもはや興味なくなってそう
79 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 19:16:25.09 ID:BNgoH63S0.net] >>75 レスサンクス カンマで区切って、文字列を数値にして 今それっぽい事をやってみたんですが、なにやら挙動があやしい >>76 れすさんくす やはり文字列になってしまうのでしょか、int[]あれば便利なのに
80 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 19:54:41.57 ID:V+fiNkQ50.net] splitで配列化出来るでしょ?
81 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 19:57:20.55 ID:Nij9ynML0.net] 挙動が怪しいって言われてもコメントしようがない
82 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 19:59:39.92 ID:NbTMQOfEr.net] カンマが全角半角交じりなのかもね
83 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 20:21:50.98 ID:BNgoH63S0.net] >>80 さんくす 数字カンマで区切ってsplitですか、簡単にできそうですね >>81 保存する種類をsystem.collections.specialized.stringcollectionとゆう文字列のコレクションを使って .addと.clearでいろいろやってるうちにwidthが0になったりと Properties.Settings.Default.cellwidth = new System.Collections.Specialized.StringCollection(); for (int i = 0; i < DataGridView1.ColumnCount; i++) { Properties.Settings.Default.cellwidth.Add(DataGridView1.Columns[i].Width.ToString()); } こんなんです、これは捨てます
84 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 20:36:41.64 ID:w9BsPIYw0.net] string.Join(",", array)で保存 array=text.Split(",").ToArray()で復元 スマホで書いたからミスってたらごめん
85 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 20:37:39.82 ID:NJkU4MQ7a.net] >>49 非光沢液晶のパソコンでプログラミングすることをすすめます。
86 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 20:48:12.25 ID:BNgoH63S0.net] >>84 さんくすです それは答えですね、やってみます
87 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 21:11:40.42 ID:LwZAFcHp0.net] これと違うの? dobon.net/vb/dotnet/programing/mysettings.html#section5
88 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 21:37:31.10 ID:LwZAFcHp0.net] >>47 本来クラスA2に置くべきメソッドB2を 循環参照になってしまうからという理由で別クラスに作るというアプローチに問題がある
89 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 21:55:04.78 ID:Obz6LqVu0.net] 不要な循環参照は避けるに越したことはないが 絶対に回避しないといけないものではないしな 設計的に妥当かどうか
90 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 22:06:26.29 ID:BNgoH63S0.net] >>87 さんくすです 型を増やすのは難しそうで、ちょっと敬遠してたのですが いちどやってみます
91 名前:36 mailto:sage [2019/10/11(金) 22:30:13.36 ID:SS1U2hzP0.net] 遅くなりましたがありがとうございました。とりあえずprivateでやってみようと思います。 しかし恥ずかしながらローカル関数って初めて知りました……こんなんあったのか
92 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 23:40:49.38 ID:AHeGNijQM.net] なんとローカルクラスもあったりするぞ
93 名前:デフォルトの名無しさん mailto:sage [2019/10/12(土) 03:22:40.33 ID:wdaAvj3T0.net] ローカルクラスとか初めて聞いたんだが Javaか何かと間違えてないか?
94 名前:デフォルトの名無しさん mailto:sage [2019/10/12(土) 03:39:46.40 ID:GmlLfjiE0.net] 内部クラスつまりクラス内クラスのことかもな ローカルクラスとは言わないけどな
95 名前:デフォルトの名無しさん mailto:sage [2019/10/12(土) 08:19:37.23 ID:2OGp7+/U0.net] 匿名クラスのことだろ LinQの関数の戻りとかでたまに使う
96 名前: mailto:sage [2019/10/12(Sat) 08:24:48 ID:2OGp7+/U0.net] var hoge = new { Name = "Masashi", Hage = true }; こんな感じで宣言出來ると思う
97 名前: mailto:sage [2019/10/12(Sat) 11:24:29 ID:tnbTUN6u0.net] class hoge { class fuga {} class moge {} } こういうやつ 呼び方は知らん
98 名前: mailto:sage [2019/10/12(Sat) 11:25:43 ID:V3SUioeZ0.net] ローカルクラスwww
99 名前:デフォルトの名無しさん mailto:sage [2019/10/12(土) 11:45:16.39 ID:vesGJIfT0.net] Java 用語だったのか。 < ローカルクラス クラス内だけじゃなくてメソッド内でも作れるみたいだけど。 匿名クラスは無名クラスだと思ってた自分。 この流れでしょうもないことを聞いてみる。 static なメンバ変数の修飾子というか、 static でないメンバ変数の this.[変数名] の this に当たるようなのってなにかないですか。 [クラス名].[変数名] で ok なのだけど、[クラス名] の部分を固定でやる方法ないかなと。
100 名前: mailto:sage [2019/10/12(Sat) 11:59:16 ID:XFT6PVwJ0.net] >>99 エイリアスとかこういう話? using ディレクティブ https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive