!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/
■コードを貼る場合は↓を使いましょう。
http://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
http://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
探検
ふらっと C#,C♯,C#(初心者用) Part145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 1e7b-qjLW)
2019/10/07(月) 20:16:17.93ID:9eyAES450370デフォルトの名無しさん (ワッチョイ de7b-wZJI)
2019/11/01(金) 20:09:54.53ID:BUUWKxub0 そもそも高速でログを流すのでなければ表示の切り替えはそんな目立たないと思うんだけど
>>369
(a) を参考に空文字で上書きするときにTextBoxからFocusを外してスクロールバーが動かないようにできないかと思ったけどうまくできなかったw
削除時にスクロール位置動かなければうまくいきそうだけど手段が他にすぐ思いつかない
他に思い付いたやり方は3つ
・AllocConsole()使ってコンソール画面を表示してそこにログを流す
コンソール画面閉じるとプロセスも閉じるのでその対策が必要
・348にRichTextBoxを2つ用意して交互にバックグラウンドでスクロールさせた後に表示する
・348で最新のログを一番上に追加していく
>>369
(a) を参考に空文字で上書きするときにTextBoxからFocusを外してスクロールバーが動かないようにできないかと思ったけどうまくできなかったw
削除時にスクロール位置動かなければうまくいきそうだけど手段が他にすぐ思いつかない
他に思い付いたやり方は3つ
・AllocConsole()使ってコンソール画面を表示してそこにログを流す
コンソール画面閉じるとプロセスも閉じるのでその対策が必要
・348にRichTextBoxを2つ用意して交互にバックグラウンドでスクロールさせた後に表示する
・348で最新のログを一番上に追加していく
371デフォルトの名無しさん (ワッチョイ 6bda-w9lH)
2019/11/02(土) 00:15:28.48ID:vBXbME0O0 そうなんだよ
意外と難しいんだよね
意外と難しいんだよね
372デフォルトの名無しさん (ワッチョイ 6763-ORrh)
2019/11/02(土) 01:17:56.03ID:gWk8WKKS0 いや、難しくしてるのは意味のない要件だって
細部まで詳細に思惑通りに動くコントロールが要求されるなら1から全部作るしか無い
TextBox等のすでに提供されてるコントロールを使うならそれに則った要件に変えればいいだけ
内部の動作ログを画面上に出してほしい要件はちょいちょいあるけど、俺個人はいつも上部を最新にするかスクロールさせないかの仕様を取る
何なら画面のチラツキなんて目を瞑ることもあるし最新行への追従をさせないこともある
楽に実装したいからそういうコントロール使ってるんだもん
どうしても要件変えられないなら低レベルAPI使って描画制御からやりゃほとんど対応できる
対応しただけのコストに見合うメリットがあるかは知らん
クライアントの強い要望とか言われたらするしか無いだろうけど
細部まで詳細に思惑通りに動くコントロールが要求されるなら1から全部作るしか無い
TextBox等のすでに提供されてるコントロールを使うならそれに則った要件に変えればいいだけ
内部の動作ログを画面上に出してほしい要件はちょいちょいあるけど、俺個人はいつも上部を最新にするかスクロールさせないかの仕様を取る
何なら画面のチラツキなんて目を瞑ることもあるし最新行への追従をさせないこともある
楽に実装したいからそういうコントロール使ってるんだもん
どうしても要件変えられないなら低レベルAPI使って描画制御からやりゃほとんど対応できる
対応しただけのコストに見合うメリットがあるかは知らん
クライアントの強い要望とか言われたらするしか無いだろうけど
373デフォルトの名無しさん (ワッチョイ 6710-Dc2t)
2019/11/02(土) 07:08:12.27ID:Cj9wzs8u0374デフォルトの名無しさん (ワッチョイ 0bad-Cnwx)
2019/11/02(土) 11:38:27.23ID:NJrq0tm30 そういえば昔、グリッドだかリストコントロール+それとは別のコントロールとして縦スクロールバーをつけて
擬似的にスクロール可能な全行表示コントロールを作ったことあった。
実際としてはグリッド・リストに一部のデータを表示しているだけってヤツね。
経験としては割に合わないからやめといた方がいいと思う。
擬似的にスクロール可能な全行表示コントロールを作ったことあった。
実際としてはグリッド・リストに一部のデータを表示しているだけってヤツね。
経験としては割に合わないからやめといた方がいいと思う。
375デフォルトの名無しさん (ワッチョイ 4f7f-DbiX)
2019/11/02(土) 18:26:30.67ID:qC4ArJrD0 zedgraph以外で使いやすいグラフ描画ライブラリをご存知ないでしょうか。
376デフォルトの名無しさん (ワッチョイ af17-qV4/)
2019/11/02(土) 18:34:46.73ID:mWOhcCZL0 何が良くて何が悪いのか、それがわからないと提案できないぞ
377デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/02(土) 18:59:15.75ID:t8MMHk4t0 >>350
>>348の試してみたけど
新しいTextを設定する時に描画を停止してやれば普通に使える
描画を一旦停止させる方法は>>368のリンク
private void texroll(string st)
{
roll.Add(st);
if (roll.Count > 300) roll.RemoveRange(0, 100);
using (new SuspendRedraw<RichTextBox>(log))
{
log.Text = string.Join("\n", roll.ToArray());
}
log.SelectionStart = log.Text.Length;
log.Focus();
log.ScrollToCaret();
Application.DoEvents();
}
>>348の試してみたけど
新しいTextを設定する時に描画を停止してやれば普通に使える
描画を一旦停止させる方法は>>368のリンク
private void texroll(string st)
{
roll.Add(st);
if (roll.Count > 300) roll.RemoveRange(0, 100);
using (new SuspendRedraw<RichTextBox>(log))
{
log.Text = string.Join("\n", roll.ToArray());
}
log.SelectionStart = log.Text.Length;
log.Focus();
log.ScrollToCaret();
Application.DoEvents();
}
378デフォルトの名無しさん (オッペケ Sr03-aDcy)
2019/11/02(土) 19:24:06.82ID:FxhpmPNyr もうimage上じゃなくpictureboxに直接描画したほうがよくないかなw
379デフォルトの名無しさん (ブーイモ MM4f-DbiX)
2019/11/02(土) 19:58:05.88ID:tC3aEWNnM 開発終了してるからかな
380デフォルトの名無しさん (ワッチョイ c322-GD6V)
2019/11/02(土) 20:07:37.11ID:OgO2q3L50 >>379
imageが?
imageが?
381デフォルトの名無しさん (ワッチョイ ff42-aDcy)
2019/11/02(土) 20:51:31.59ID:hxKOcIYY0382デフォルトの名無しさん (ブーイモ MM27-xSsB)
2019/11/02(土) 21:24:35.05ID:fQnnj5XsM >>377
DoEventsは無くしたいな
DoEventsは無くしたいな
383デフォルトの名無しさん (ワッチョイ ded8-8pfq)
2019/11/03(日) 23:16:11.35ID:b9fr0VVV0 関数ポインタの配列的なことをマネージコードでやるにはどうすればいいの?
384デフォルトの名無しさん (ワッチョイ 5f38-VZ3I)
2019/11/03(日) 23:24:57.20ID:85zZlWEV0 FuncやらActionを配列で持つとかとか
385デフォルトの名無しさん (ブーイモ MMea-W7VG)
2019/11/03(日) 23:53:36.44ID:alptGm0wM 普通に足せない?
386デフォルトの名無しさん (アウアウウー Sa2f-xbEI)
2019/11/04(月) 00:33:22.52ID:B36l93jfa イベントハンドラ以外にマルチキャストを使うのはお勧めしない
古臭い黴の生えた機能だよ
古臭い黴の生えた機能だよ
387デフォルトの名無しさん (ワッチョイ 67d8-8pfq)
2019/11/04(月) 14:50:52.31ID:ZZvILvvT0 >>383,384,385
arrayから取り出して実行するところのコーディングが分かりません
void(*ptf[n])(void);
ptf[0] = func1;
ptf[1] = func2;
ptf[2] = func3;
...
(*ptf[i])();
こういうのをメゾットでやるには、マネージコードではどうすればいいんだろう?
arrayから取り出して実行するところのコーディングが分かりません
void(*ptf[n])(void);
ptf[0] = func1;
ptf[1] = func2;
ptf[2] = func3;
...
(*ptf[i])();
こういうのをメゾットでやるには、マネージコードではどうすればいいんだろう?
388デフォルトの名無しさん (ワッチョイ 1b63-zSOU)
2019/11/04(月) 14:59:46.62ID:l0Xu1LFS0389デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/11/04(月) 15:03:14.57ID:NxU2aGbZ0 >>387
var funcs = new Action[] { Func1, Func2, Func3 };
funcs[ 0 ]();
とか
var func = funcs[ 1 ];
func();
var funcs = new Action[] { Func1, Func2, Func3 };
funcs[ 0 ]();
とか
var func = funcs[ 1 ];
func();
390デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/04(月) 15:03:42.47ID:KBcuTkU10 C#で関数を値として受け渡すためにはデリゲートっていう型を使う
391デフォルトの名無しさん (JP 0H4f-pjCs)
2019/11/04(月) 17:43:23.21ID:zS6JGUgFH マネージコードってなんや?
392デフォルトの名無しさん (ドコグロ MM02-xbEI)
2019/11/04(月) 17:47:38.02ID:hOMB8BsXM >>391
「マネージコード」は「馬鹿でもわかる」と読み替えればだいたい間違いない
「マネージコード」は「馬鹿でもわかる」と読み替えればだいたい間違いない
393デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/04(月) 19:02:59.97ID:v9WRziqL0 palallelで同じbyte[]を読み書きしてみたら
思ったより処理が早くないんだけど
排他処理とかで重くなっていたりとかある?
思ったより処理が早くないんだけど
排他処理とかで重くなっていたりとかある?
394デフォルトの名無しさん (ワッチョイ ca79-qV4/)
2019/11/04(月) 19:05:28.08ID:95x+Uktm0 何でも非同期にしたら速くなるわけではない
理由は排他制御とかTaskの生成コストとか色々
高速化するにはうまくやる必要がある
理由は排他制御とかTaskの生成コストとか色々
高速化するにはうまくやる必要がある
395デフォルトの名無しさん (ワッチョイ 6761-cRjf)
2019/11/04(月) 19:32:49.51ID:kKuYGgew0 スレッドプール使うといっても生成コストは結構高いので一瞬で終わる処理だと逆効果
396デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/04(月) 23:18:45.02ID:KBcuTkU10 Parallelは処理の分割とかスレッドプールの管理はしてくれるけど
排他制御はしてくれんやろ?
排他制御はしてくれんやろ?
397デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/04(月) 23:49:11.75ID:v9WRziqL0 やっぱそうか…単純に単純に処理が重いんだね
見直してみますありがとう
見直してみますありがとう
398デフォルトの名無しさん (ワッチョイ ce0d-+mOG)
2019/11/05(火) 00:36:50.60ID:bHrgVvs60 structをpublicにしても各メンバーは一括でpublic扱いにならないのなんでなん?親分がpublicなら子分も暗黙的にpublicやろがいと思いまして。
399デフォルトの名無しさん (ブーイモ MM27-W7VG)
2019/11/05(火) 00:37:22.81ID:+pU68px4M せやな
400デフォルトの名無しさん (ワッチョイ 4aa7-kTP4)
2019/11/05(火) 01:08:31.06ID:OkDX2sfL0 >>398
誰に対するpublicなのか勘違いしてね?
誰に対するpublicなのか勘違いしてね?
401デフォルトの名無しさん (ワッチョイ ff61-bJgw)
2019/11/05(火) 05:42:15.86ID:jgE+3/q30 >>398
全部publicつけるように習慣づけとけばいいよ。
全部publicつけるように習慣づけとけばいいよ。
402デフォルトの名無しさん (ワッチョイ ea52-LcJH)
2019/11/05(火) 06:23:16.40ID:Qdu0k3JA0 >>398
お前の親が知人にお前のことを紹介するとき、お前の机の中のエロ本やパソコン内のエロ画像フォルダを勝手に公開されたら困るだろ
お前の親が知人にお前のことを紹介するとき、お前の机の中のエロ本やパソコン内のエロ画像フォルダを勝手に公開されたら困るだろ
403デフォルトの名無しさん (JP 0H4f-pjCs)
2019/11/05(火) 06:42:35.89ID:NkD1Ww44H >>396
lookするだけちゃうの?
lookするだけちゃうの?
404デフォルトの名無しさん (ブーイモ MMea-LRXq)
2019/11/05(火) 07:41:50.89ID:Dk7Gl9zXM 見て!
405デフォルトの名無しさん (ワッチョイ 5f38-VZ3I)
2019/11/05(火) 10:36:58.27ID:mW5ea4am0 >>402
この説明したことあるわw
この説明したことあるわw
406デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/05(火) 14:36:36.98ID:5/2Yewwy0 WPF始めたばかりでThumbを使ってドラッグでコントロールを移動をしたかったんだけど
これってそもそも中にラベルやボタンを置けない仕様なのかな…?
とりあえずtemplateを使って無理矢理borderとbuttonを置いてみたけど
今度はborderからはDragStartedもDragDeltaもThumbに届くのに、buttonからは届かない
Thumbってどういう風に使うものなんですかね…
ウインドウのタイトルバー的な感じに置くものなのでしょうか
これってそもそも中にラベルやボタンを置けない仕様なのかな…?
とりあえずtemplateを使って無理矢理borderとbuttonを置いてみたけど
今度はborderからはDragStartedもDragDeltaもThumbに届くのに、buttonからは届かない
Thumbってどういう風に使うものなんですかね…
ウインドウのタイトルバー的な感じに置くものなのでしょうか
407デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 14:46:13.23ID:F/FN86RY0 他のUI要素の部品として使われることを想定してるもんだからね
408デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/05(火) 14:55:03.31ID:5/2Yewwy0 例えばラベルにThumbの機能を持たせようとするとどうしたらいいんだろう?
thumbのテンプレートにラベルを置いたとして、ラベルのテキストやbackgroundプロパティを
tumbのプロパティとして定義することはできるのかな…?
thumbのテンプレートにラベルを置いたとして、ラベルのテキストやbackgroundプロパティを
tumbのプロパティとして定義することはできるのかな…?
409デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 15:07:10.27ID:F/FN86RY0 Thumbの機能ってのはよく分からんが、「ラベルにThumbの機能を持たせる」のに
Thumbにラベルの機能持たせるとか主客転倒してるように思える
Thumbにラベルの機能持たせるとか主客転倒してるように思える
410デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 15:12:25.39ID:F/FN86RY0 基本的にThumbってのは「マウスのドラッグで操作する」ことを表すもので
そのドラッグにどう意味づけするかはThumbではなくてThumbを持っている要素が決めるもの
スクロールバーならドラッグをスクロールとして扱うし
スライダーなら値の増減を表す
そのドラッグにどう意味づけするかはThumbではなくてThumbを持っている要素が決めるもの
スクロールバーならドラッグをスクロールとして扱うし
スライダーなら値の増減を表す
411デフォルトの名無しさん (ワッチョイ 6bda-tz1I)
2019/11/05(火) 15:29:08.42ID:5/2Yewwy0 もしかして俺の理解がおかしいのかな
普通のウインドウみたいにタイトルバーをドラッグしてコントロールを動かしたい場合って
<dockpanel>
<thumb>
<label>
みたいにするものなのかな、それとも
<dockpanel>
<label>
<thumb>
が正しい?
本当は
<thumb>
<dockpanel>
<label>
みたいにしてdockpanelのボタンとか以外の場所は
ドラッグ移動可能にしたいのだけど…
普通のウインドウみたいにタイトルバーをドラッグしてコントロールを動かしたい場合って
<dockpanel>
<thumb>
<label>
みたいにするものなのかな、それとも
<dockpanel>
<label>
<thumb>
が正しい?
本当は
<thumb>
<dockpanel>
<label>
みたいにしてdockpanelのボタンとか以外の場所は
ドラッグ移動可能にしたいのだけど…
412デフォルトの名無しさん (ブーイモ MM76-W7VG)
2019/11/05(火) 15:50:59.23ID:Ai05n3QGM DTD見ろ
413デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 15:58:11.06ID:F/FN86RY0 正直全然説明が理解できんが
DockPanelをルートとしたウィンドウ内ウィンドウ的なのが存在してて
それのタイトルバー的なのをマウスで掴んで動かしたいってことでいいのか
まあThumbの出番は無いだろうな
DockPanelをルートとしたウィンドウ内ウィンドウ的なのが存在してて
それのタイトルバー的なのをマウスで掴んで動かしたいってことでいいのか
まあThumbの出番は無いだろうな
414デフォルトの名無しさん (ブーイモ MM27-tz1I)
2019/11/05(火) 16:02:31.08ID:E+44QmotM415デフォルトの名無しさん (ワッチョイ 4e7c-a7m8)
2019/11/05(火) 16:27:06.76ID:F/FN86RY0 ドラッグできる部分をBorderとかで定義して
そいつのMouseLeftButtonDown/MouseMove/MouseLeftButtonUpイベントでDockPanelを動かすコードを書く
そいつのMouseLeftButtonDown/MouseMove/MouseLeftButtonUpイベントでDockPanelを動かすコードを書く
416デフォルトの名無しさん (ワッチョイ 0b6e-ANgw)
2019/11/05(火) 19:01:21.35ID:R3NaIBm20 public class Person
{
string name;
int age;
public read()
{
// ファイルを読み込んでnameとageに入れる
}}
こんなクラスがあるとします。1クラスに1役割ということでここからPersonクラスとPersonReaderクラスに分けることを考えます。
そのときPersonReaderは以下の2種類ってどちらがベターでしょうか
public class PersonReader
{
private Person person;
public PersonReader(Person person)
{
this.person = person;
}
public read()
{
// ファイルを読み込む処理
person = 〜
}}
Public class PersonReader
{
public Read(Person person)
{
// ファイルを読み込む処理
person = 〜
}}
readに引数無いほうがきれいな気がするんですけど、readerにもオブジェクトの参照持たせるのは不味いような気もします。
よろしくおねがいします
{
string name;
int age;
public read()
{
// ファイルを読み込んでnameとageに入れる
}}
こんなクラスがあるとします。1クラスに1役割ということでここからPersonクラスとPersonReaderクラスに分けることを考えます。
そのときPersonReaderは以下の2種類ってどちらがベターでしょうか
public class PersonReader
{
private Person person;
public PersonReader(Person person)
{
this.person = person;
}
public read()
{
// ファイルを読み込む処理
person = 〜
}}
Public class PersonReader
{
public Read(Person person)
{
// ファイルを読み込む処理
person = 〜
}}
readに引数無いほうがきれいな気がするんですけど、readerにもオブジェクトの参照持たせるのは不味いような気もします。
よろしくおねがいします
417デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/11/05(火) 19:19:02.37ID:Ra2VTEEXa >>416
あんまり教条主義的に考えない方がいいのでは?
特に事情がない限り
// ○○ファイを読み込んでこのインスタンスのフィールドとプロパティーを更新する
public void Load(string path)
{
....
}
とか、
// 〇〇ファイルから新しいインスタンスを作成
public static Person FromFile(string path)
{
....
}
こんなの方が使いやすいのでは?
あんまり教条主義的に考えない方がいいのでは?
特に事情がない限り
// ○○ファイを読み込んでこのインスタンスのフィールドとプロパティーを更新する
public void Load(string path)
{
....
}
とか、
// 〇〇ファイルから新しいインスタンスを作成
public static Person FromFile(string path)
{
....
}
こんなの方が使いやすいのでは?
418デフォルトの名無しさん (ワッチョイ 1bda-rLHV)
2019/11/05(火) 19:19:34.94ID:6X5avhuH0 win32apiをc#から呼ぶのは色々大変です
少し調べたらVanara.PInvokeのnugetがありました
日本語の記事が余り無いようですがどんなもんなんでしょうか?
少し調べたらVanara.PInvokeのnugetがありました
日本語の記事が余り無いようですがどんなもんなんでしょうか?
419デフォルトの名無しさん (ワッチョイ 3a2d-DXXI)
2019/11/05(火) 20:06:06.04ID:HWawPKHc0420デフォルトの名無しさん (ワッチョイ 0b6e-ANgw)
2019/11/05(火) 21:59:36.96ID:R3NaIBm20 >>417
あーまぁ今回の例だとそうかもしれないですね。
ただ実際の開発だとxmlを読み込むんですけどちょっと処理が膨大で。読み込む先、今回で言うところのPersonクラスも相当でかいので分けないといかんだろと
あーまぁ今回の例だとそうかもしれないですね。
ただ実際の開発だとxmlを読み込むんですけどちょっと処理が膨大で。読み込む先、今回で言うところのPersonクラスも相当でかいので分けないといかんだろと
421デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
2019/11/05(火) 22:21:14.48ID:rzC/SdAh0 >>416
正直どっちも勘弁してって感じ
インスタンス生成の責務をファクトリに割り当てる頻出パターンなので
ファクトリやファクトリメソッドのキーワードでググればいいと思う
ファクトリクラスはusing Personしても参照を持つ必要はない
正直どっちも勘弁してって感じ
インスタンス生成の責務をファクトリに割り当てる頻出パターンなので
ファクトリやファクトリメソッドのキーワードでググればいいと思う
ファクトリクラスはusing Personしても参照を持つ必要はない
422デフォルトの名無しさん (ワッチョイ 0363-ORrh)
2019/11/05(火) 22:43:58.63ID:hT1YfL4n0 >>420
personは分解できないの?
そんな巨大ならpersonを分解して
xml読み込んでパースした情報を保持するやつ
パースした情報からpersonの部品を作るやつ
personの部品からpersonを作るやつ
みたいに段階踏むかなぁ
personは分解できないの?
そんな巨大ならpersonを分解して
xml読み込んでパースした情報を保持するやつ
パースした情報からpersonの部品を作るやつ
personの部品からpersonを作るやつ
みたいに段階踏むかなぁ
423デフォルトの名無しさん (ワッチョイ 0363-ORrh)
2019/11/05(火) 22:45:42.68ID:hT1YfL4n0 nugetなんて誰でもリリースできるんだから著名じゃないライブラリの良し悪しは中々情報は得にくいだろうね。
頑張って元言語の記事読むしかないんじゃない?
頑張って元言語の記事読むしかないんじゃない?
424デフォルトの名無しさん (ワッチョイ ca7d-qV4/)
2019/11/05(火) 22:48:54.04ID:dsMkwNKQ0 まじかよ
nugetはどっかの技術検査受けて
認められたのだけがnugetにリリースされてるんだと勝手に思ってた
nugetはどっかの技術検査受けて
認められたのだけがnugetにリリースされてるんだと勝手に思ってた
425デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/11/05(火) 23:00:27.36ID:Ra2VTEEXa >>420
どうしても分ける前提なわけね。
まあPersonReader がPersonのインスタンスを持つのは普通に変だよねやっぱり。
どこにも必然性がない。
PersonReader が状態を持つ必要がなければstaticクラスのstaticメソッドでいいはず
どうでもいいけど、
// ファイルを読み込む処理
person = 〜
じゃなくて、例えば
// ファイルを読み込む処理
person.Hoge = 〜;
person.Hage = 〜;
person.Piyo = 〜;
...
だよね多分?
どうしても分ける前提なわけね。
まあPersonReader がPersonのインスタンスを持つのは普通に変だよねやっぱり。
どこにも必然性がない。
PersonReader が状態を持つ必要がなければstaticクラスのstaticメソッドでいいはず
どうでもいいけど、
// ファイルを読み込む処理
person = 〜
じゃなくて、例えば
// ファイルを読み込む処理
person.Hoge = 〜;
person.Hage = 〜;
person.Piyo = 〜;
...
だよね多分?
426デフォルトの名無しさん (アウアウイー Sa43-4Sz2)
2019/11/05(火) 23:15:11.57ID:Uakp03G7a 最近のVisualStudioなら暮らすライブラリのプロジェクトで[ビルド(B)]-[パッケージ(P)]をクリックするだけで
nuget登録用のnupkgが出来上がるよ
あとはnugetにログインしてWeb上から適当に情報入力して登録すればすぐ反映される
悪意のあるパッケージとかどうやって識別してrejectしてるのか正直不思議
それとも表沙汰になってないだけでnpmみたいな汚染が日常的に起こってるのか
さすがにストアアプリよりははるかにマシだけどNuGetも玉石混合、というかゴミパッケージのほうが多いと思うよ
nuget登録用のnupkgが出来上がるよ
あとはnugetにログインしてWeb上から適当に情報入力して登録すればすぐ反映される
悪意のあるパッケージとかどうやって識別してrejectしてるのか正直不思議
それとも表沙汰になってないだけでnpmみたいな汚染が日常的に起こってるのか
さすがにストアアプリよりははるかにマシだけどNuGetも玉石混合、というかゴミパッケージのほうが多いと思うよ
427デフォルトの名無しさん (ワッチョイ cbda-qV4/)
2019/11/05(火) 23:24:58.96ID:2pF9vl9I0 「玉石混交」な
428デフォルトの名無しさん (アウアウエー Sac2-Y4hk)
2019/11/05(火) 23:32:45.78ID:mzMh853Ma attributeって結構使うもん?
429デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/11/05(火) 23:43:07.83ID:UYy2SJn60 >>428
自分で作ることは滅多にないけど、標準で用意されてるのは時々使う
FlagsAttributeやDllImportAttributeなんかは比較的良く使われているのではないだろうか
使わない人は全然使わないだろうけど
自分で作ることは滅多にないけど、標準で用意されてるのは時々使う
FlagsAttributeやDllImportAttributeなんかは比較的良く使われているのではないだろうか
使わない人は全然使わないだろうけど
430デフォルトの名無しさん (アウアウエー Sac2-Y4hk)
2019/11/05(火) 23:52:58.07ID:mzMh853Ma >>429
初学でASP.NET Coreのソースおっかけたりしても意味わからんくて困っている
初学でASP.NET Coreのソースおっかけたりしても意味わからんくて困っている
431デフォルトの名無しさん (ブーイモ MM76-xr2D)
2019/11/06(水) 00:06:43.42ID:YY5sm69bM 調べてないけどxmlからデータクラス生成するくらいなんかのライブラリに投げちゃいかんの?
432デフォルトの名無しさん (ブーイモ MM76-xr2D)
2019/11/06(水) 00:10:22.77ID:YY5sm69bM と思ったら言語標準の機能で十分行けるな
433デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/11/06(水) 00:10:24.55ID:vTr6jChq0 >>430
Attribute自体はプロパティやメソッドに付与して、コンパイラやライブラリに対して追加の情報を与えるだけ
Attributeが具体的に何を意味をするのかは、それぞれのAttributeによる
ASP.NET Coreのソースだったら、Validation関係かな
Attribute自体はプロパティやメソッドに付与して、コンパイラやライブラリに対して追加の情報を与えるだけ
Attributeが具体的に何を意味をするのかは、それぞれのAttributeによる
ASP.NET Coreのソースだったら、Validation関係かな
434デフォルトの名無しさん (ワッチョイ 0363-ORrh)
2019/11/06(水) 00:13:31.71ID:fi/5YPdO0 >>428
自作はenumにラベルつけるのに作るくらいかなぁ
enumの定義値とメニュー上の表示文字列対応させるみたいな感じ
多言語対応とかあるような案件じゃ使えないけど
すでにあるのはちょいちょい使う
TestとかBenchmarkとかは属性ありきだったりするし
自作はenumにラベルつけるのに作るくらいかなぁ
enumの定義値とメニュー上の表示文字列対応させるみたいな感じ
多言語対応とかあるような案件じゃ使えないけど
すでにあるのはちょいちょい使う
TestとかBenchmarkとかは属性ありきだったりするし
435デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/11/06(水) 00:59:37.18ID:vTr6jChq0436デフォルトの名無しさん (ワッチョイ 0363-ORrh)
2019/11/06(水) 01:07:17.94ID:fi/5YPdO0437デフォルトの名無しさん (ワッチョイ 6f5f-qQ6b)
2019/11/06(水) 01:31:17.54ID:vTr6jChq0438デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/11/06(水) 01:36:47.06ID:sSqMDD2ka 属性をキーにするぐらいにあらenumを直接キーにすりゃいいじゃんw
素直に拡張メソッドてToString定義した方が早いよw
素直に拡張メソッドてToString定義した方が早いよw
439デフォルトの名無しさん (ワッチョイ c322-GD6V)
2019/11/06(水) 01:41:30.82ID:TfmivfRs0 >>434
それ自作しなくてもDescriptionAttributeが標準であるよ
それ自作しなくてもDescriptionAttributeが標準であるよ
440デフォルトの名無しさん (アウアウウー Sa2f-jEuW)
2019/11/06(水) 01:41:32.51ID:sSqMDD2ka 拡張メソッドが使える以前はenumと相互に暗黙変換できるクラスを作って
そこに変換メソッドを書いてたけど、あれは実にあほらしい作業だったなあ
そこに変換メソッドを書いてたけど、あれは実にあほらしい作業だったなあ
441デフォルトの名無しさん (ワッチョイ 0363-ORrh)
2019/11/06(水) 02:20:17.85ID:fi/5YPdO0 >>439
実際にはenumとラベルを相互に変換したり複数対応させたり等々ケースに応じて細かな要件が出てくるからそういう拡張をするときのベースとして使ってる
あとキャッシュしないと遅いから自作側でキャッシュ処理も含めて作ることが多い
descriptionだとその属性自身を機能拡張したいときにしづらくない?
実際にはenumとラベルを相互に変換したり複数対応させたり等々ケースに応じて細かな要件が出てくるからそういう拡張をするときのベースとして使ってる
あとキャッシュしないと遅いから自作側でキャッシュ処理も含めて作ることが多い
descriptionだとその属性自身を機能拡張したいときにしづらくない?
442デフォルトの名無しさん (ワッチョイ 4a90-W2Md)
2019/11/06(水) 10:06:07.21ID:ju8QJ8Hj0 BindでEnumToStringConverter作るからそこでやるだろ。そこでリソース文字列を引っ張るようにする
443デフォルトの名無しさん (JP 0Hcf-Ri0F)
2019/11/07(木) 00:45:40.72ID:9Le1AJukH チャートエリアとか図解したサイトないですか?
シリーズだかなんやら意味分からん
シリーズだかなんやら意味分からん
444デフォルトの名無しさん (ワッチョイ 8b6e-msxt)
2019/11/07(木) 18:27:33.71ID:4Y6lEZUW0 C++のライブラリのちょっとした機能使いたくて現状C++でexe作ってそれをprocessで呼び出してる構造なんですけどなんかデメリットあります?
一応ラッパーもあってC#に一元化も出来るんですけどまぁ遅い。それに実行ファイル配るときに一緒にdllわさっと渡さないといけなくて。今はC#とC++のexe2つ渡すだけです
ソースコード別になっちゃって管理がめんどいくらいしか思いつかなかったんですけど、なんかトラブルの種になりそうなことありますか?
一応ラッパーもあってC#に一元化も出来るんですけどまぁ遅い。それに実行ファイル配るときに一緒にdllわさっと渡さないといけなくて。今はC#とC++のexe2つ渡すだけです
ソースコード別になっちゃって管理がめんどいくらいしか思いつかなかったんですけど、なんかトラブルの種になりそうなことありますか?
445デフォルトの名無しさん (ワッチョイ 8b6e-msxt)
2019/11/07(木) 18:36:24.70ID:4Y6lEZUW0446デフォルトの名無しさん (ワッチョイ 5b2f-DaD1)
2019/11/07(木) 18:55:13.67ID:5UmAe6Qb0 フォーム上に左1/4が欠けた円を表示させたいです。
FillEllipseで円を書いてFillRectangle背景色で1/4を塗りつぶせばいいや
と思ったら、FillRectangleが隣り合った塗りつぶしたくない図形も塗りつぶしてしまう。
なにかいい方法は無いでしょうか?
FillEllipseで円を書いてFillRectangle背景色で1/4を塗りつぶせばいいや
と思ったら、FillRectangleが隣り合った塗りつぶしたくない図形も塗りつぶしてしまう。
なにかいい方法は無いでしょうか?
447デフォルトの名無しさん (スップ Sdbf-4TTv)
2019/11/07(木) 19:05:19.59ID:rg6PQaG0d >>444
別に現状で不満ないなら良いのでは?
配布するものならexeが複数あるとC++の方のexe起動してうごかねーっていうのがくるかも
あと動かす環境が変わったときに両方のexeの再ビルドが必要になる可能性があるとか
環境まで言い出したらexeかどうかなん些細な話かもしれんが
別に現状で不満ないなら良いのでは?
配布するものならexeが複数あるとC++の方のexe起動してうごかねーっていうのがくるかも
あと動かす環境が変わったときに両方のexeの再ビルドが必要になる可能性があるとか
環境まで言い出したらexeかどうかなん些細な話かもしれんが
448デフォルトの名無しさん (ワッチョイ 9f2c-3bRk)
2019/11/07(木) 19:07:46.68ID:tx6c8EjT0 >>446
FillPieでできない?
FillPieでできない?
449デフォルトの名無しさん (ワッチョイ 9fa5-EJQs)
2019/11/07(木) 19:09:01.70ID:Cw78xltR0 >>446
DrawPie、FillPieがあるわけだが
DrawPie、FillPieがあるわけだが
450デフォルトの名無しさん (オイコラミネオ MMcf-KCNP)
2019/11/07(木) 19:19:51.87ID:6XnNaJpnM dllにでもしたほうがいい気はする
451デフォルトの名無しさん (ワッチョイ 5b2f-DaD1)
2019/11/07(木) 19:19:52.40ID:5UmAe6Qb0 すいません。
扇形ではなくて、左1/4のところでまっすぐカットしているという意味です。
図形の説明難しいな・・・。
扇形ではなくて、左1/4のところでまっすぐカットしているという意味です。
図形の説明難しいな・・・。
452デフォルトの名無しさん (ワッチョイ 9fa5-EJQs)
2019/11/07(木) 19:38:40.99ID:Cw78xltR0 よくわからんが、SetClipで描画範囲を指定すればいいんじゃないの
453デフォルトの名無しさん (ワッチョイ 9f2c-3bRk)
2019/11/07(木) 19:52:29.15ID:tx6c8EjT0 円弧の端と円の中心、もう片方の端と円の中心でそれぞれ線分を引いた形じゃなくて
円弧の端と端を1本の線分でつないだ形?
まあGraphicsPath作ってFillPathすればいいんじゃない
円弧の端と端を1本の線分でつないだ形?
まあGraphicsPath作ってFillPathすればいいんじゃない
454デフォルトの名無しさん (ブーイモ MM4f-4fxd)
2019/11/07(木) 20:58:33.81ID:YpFFJiGZM 私なら直線分解してポリゴン描画かな😅
455デフォルトの名無しさん (アウアウウー Sacf-FD+t)
2019/11/07(木) 21:34:03.21ID:nmFTkuxva >>446
境界線が不要でただ塗りつぶすだけならこれが一番簡単だね
public void FillSlicedEllipseL(Graphics g,Brush brush, RectangleF rect, double ratio)
{
var clip = g.Clip;
var sliceRect = rect; sliceRect.Width *= (float)ratio;
g.SetClip(sliceRect, CombineMode.Exclude);
g.FillEllipse(brush, rect);
g.Clip = clip;
}
必用ならパス作るしかないか
境界線が不要でただ塗りつぶすだけならこれが一番簡単だね
public void FillSlicedEllipseL(Graphics g,Brush brush, RectangleF rect, double ratio)
{
var clip = g.Clip;
var sliceRect = rect; sliceRect.Width *= (float)ratio;
g.SetClip(sliceRect, CombineMode.Exclude);
g.FillEllipse(brush, rect);
g.Clip = clip;
}
必用ならパス作るしかないか
456デフォルトの名無しさん (ワッチョイ 9f01-vL98)
2019/11/07(木) 21:35:04.28ID:debRpYWr0 >>444
Process経由の場合はDLL使ったAPI呼び出しに比べると
マーシャリング/アンマーシャリング、エラーハンドリングが面倒になりがち
現状そこに不満がないなら無理してDLLに変更する必要はないと思う
あと一応バイナリリソースとしてdllやexeをC#のアセンブリに埋め込んで1ファイルにすることも可能
(リソースからexeを取り出して起動したりDLLをロードしたりするための追加コードが必要)
Process経由の場合はDLL使ったAPI呼び出しに比べると
マーシャリング/アンマーシャリング、エラーハンドリングが面倒になりがち
現状そこに不満がないなら無理してDLLに変更する必要はないと思う
あと一応バイナリリソースとしてdllやexeをC#のアセンブリに埋め込んで1ファイルにすることも可能
(リソースからexeを取り出して起動したりDLLをロードしたりするための追加コードが必要)
457デフォルトの名無しさん (ワッチョイ bb5f-vPHs)
2019/11/07(木) 22:01:55.24ID:cfOynPV20458デフォルトの名無しさん (ブーイモ MM4f-4fxd)
2019/11/07(木) 22:58:10.38ID:YpFFJiGZM EXEもLoadLibrary出来るのよ。
なので関数をexport出来れば、どちらでも使える
なので関数をexport出来れば、どちらでも使える
459デフォルトの名無しさん (ワッチョイ 5b2f-DaD1)
2019/11/07(木) 23:09:00.51ID:5UmAe6Qb0 いろいろありがとうございます。
説明ヘタですいません。
https://ja.wikipedia.org/wiki/%E5%BC%A7_(%E5%B9%BE%E4%BD%95%E5%AD%A6)
の上から2番めの図のABで円の端を切り落とした形状です。
任意の半径をしていするとこの形状が表示できるようにしたいのです。
隅っこがAB直線で欠けた円ですね。
説明ヘタですいません。
https://ja.wikipedia.org/wiki/%E5%BC%A7_(%E5%B9%BE%E4%BD%95%E5%AD%A6)
の上から2番めの図のABで円の端を切り落とした形状です。
任意の半径をしていするとこの形状が表示できるようにしたいのです。
隅っこがAB直線で欠けた円ですね。
460デフォルトの名無しさん (ワッチョイ 5b2f-DaD1)
2019/11/07(木) 23:10:57.49ID:5UmAe6Qb0 https://ja.wikipedia.org/wiki/%E5%BC%A7_(%E5%B9%BE%E4%BD%95%E5%AD%A6)
貼り付けたら後ろがハイパーリンクじゃなくなってますが、コピペしていただくとwikiのページが開きます。
貼り付けたら後ろがハイパーリンクじゃなくなってますが、コピペしていただくとwikiのページが開きます。
461デフォルトの名無しさん (ワッチョイ 5b2f-DaD1)
2019/11/07(木) 23:18:55.53ID:5UmAe6Qb0 やっかいなのは
欠けた円の半径を任意に変更したいのでGraphicPathで円に接する直線を引くのが難しいこと
欠けた円をたくさん描くので、rectangleやgclipでやると隣の欠けた円にも影響を及ぼすこと
なんですよね。
clipならできるのかなぁ。
欠けた円の半径を任意に変更したいのでGraphicPathで円に接する直線を引くのが難しいこと
欠けた円をたくさん描くので、rectangleやgclipでやると隣の欠けた円にも影響を及ぼすこと
なんですよね。
clipならできるのかなぁ。
462デフォルトの名無しさん (ワッチョイ 9fa7-cErl)
2019/11/07(木) 23:22:58.14ID:6/qmKr7m0 単純に描画順で回避すればいいじゃん
464デフォルトの名無しさん (ワッチョイ 9fa7-cErl)
2019/11/07(木) 23:25:47.22ID:6/qmKr7m0 それもできないなら一度
どっかのピクチャーボックス(wpf?winforms?)に貼り付けて
欠けた円を作ったあとで
それを必要な領域だけくり抜いて持って来ればええよ
どっかのピクチャーボックス(wpf?winforms?)に貼り付けて
欠けた円を作ったあとで
それを必要な領域だけくり抜いて持って来ればええよ
465デフォルトの名無しさん (ワッチョイ 4f0d-3CWa)
2019/11/08(金) 01:03:44.16ID:OPBfzRS70 vs2019でc#フォームアプリを作ろうとするとデフォが.net coreなのね
.net frameworkはやたら下の方に出てくるしこっちもデフォはユーザコントロール用だ
.net frameworkはやたら下の方に出てくるしこっちもデフォはユーザコントロール用だ
466デフォルトの名無しさん (JP 0Hcf-Ri0F)
2019/11/08(金) 01:52:25.99ID:u/zQOw3qH467デフォルトの名無しさん (ブーイモ MM7f-rO36)
2019/11/08(金) 07:02:50.73ID:uJPiJMNYM Properties.Settings.Default を変数dに入れて
クラス内のpublic変数にしたいんだけど
何かうまい方法はないだろうか
記述が長すぎるから短縮したいんだよね
クラス内のpublic変数にしたいんだけど
何かうまい方法はないだろうか
記述が長すぎるから短縮したいんだよね
468デフォルトの名無しさん (ワッチョイ 9f01-vL98)
2019/11/08(金) 10:09:55.65ID:q9/Fdf+e0469デフォルトの名無しさん (ワッチョイ 9fda-rO36)
2019/11/08(金) 10:55:00.38ID:l/9rfM6i0 usingは無理でした
名前空間はPropertiesだけで
Properties.Setting.Default のエイリアスや参照は作れないようです
privateだと参照が作れるんですが
publicにするとDefaultが internal sealedで定義されているため
エラーになっちゃうんですよね…
名前空間はPropertiesだけで
Properties.Setting.Default のエイリアスや参照は作れないようです
privateだと参照が作れるんですが
publicにするとDefaultが internal sealedで定義されているため
エラーになっちゃうんですよね…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- ( ・᷄ὢ・᷅ )あ?
- 千葉県民だけどなんか地震あったらしいな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- 秋田大学のホームページがつながらなくなって1日以上経つのだが
- 【速報】高市早苗、起床 [779938112]
