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

■ このスレッドは過去ログ倉庫に格納されています
2020/05/27(水) 20:28:41.27ID:Pggemlyq0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
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
2020/10/31(土) 21:34:45.65ID:2P+i0kOV0
>>462
>>465の言うように文字列とか送るだけで表示するメソッド作っておくといろいろ後付けで改変しやすくなる
RichTextBox使えば状況に応じて文字列ごとに色やフォントを変えることもできるし
あとAppendTextは自動でTextBoxをスクロールしてくれる便利なものだけどメソッドの先頭で念のためFocus()かSelect()しておくと確実
フォーカス当たってないと自動スクロールしてくれないので
2020/10/31(土) 21:59:39.41ID:b+5qg5vxa
>>462
何に不満や違和感を感じてるのか具体的に言わないと誰も答えようがないよw
プログラミングの分野に限らず他人に自分の意図を正確に伝えることってほんと大事
2020/10/31(土) 22:07:28.55ID:1TbrihkJ0
>>462
その方法が正攻法だと思って良い
あとは他の人のアドバイスのように便利なメソッド作って使いやすくすればいいと思う
2020/10/31(土) 22:21:19.47ID:4IwElBvx0
>>463
ありがとう。使ってみる

>>464
今回やりたい事は違うけどこれはこれで知りたかった事だ。ありがとう

>>465
改行用の関数をForm1の方で作っといてdelegateかfuncで処理用クラスに渡す感じかな?
$マークのやつそういう使い方だったんかサンクス
あと改行だけ分けたのは元のコードで「str + “¥r¥n”」の形だったのを直した名残だわ

>>466
フォーカス当たってないとスクロールしてくれないのか
なんか動いてくれないと思ってたんだよな
2020/10/31(土) 22:39:35.75ID:syXSgGXN0
>>469
積極的にコンソールを使う意図が無いのであれば、AllocConsoleよりも
System.Diagnostics名前空間のDebug.WriteLine()やTrace.WriteLine()を勧める
VSのデバッグ出力画面やDebugView++等のアプリで見れる
2020/10/31(土) 23:14:04.52ID:+32PkI4zM
コンソールにはコンソールのメリットが
あるからなぁw
2020/11/01(日) 00:44:45.18ID:TS2lQNKS0
>>460
本当に書かれている通りにやったの?
・WebView2はプレリリース版でなければならない(今だと1.0.674-prereleaseかな?)
・EdgeはCanary版でなければならない
なんとなく、WebView2のプレリリース版でなく安定版の方を入れてそうな予感
2020/11/01(日) 08:45:28.58ID:R1ZyiuLQa
>>472
ありがとうございます!
通常版のedgeをアンインストールして、edgeのcanary版をインストールして、再度通常版のedgeをインストールしたらできました!
2種類のedgeがインストールしてないと動作しないんですね。

webview2を使う場合は、全ユーザーも、canary版のedgeをインストールしていないと使用できないんでしょうか?
2020/11/01(日) 16:17:54.64ID:hv15RbEG0
まあまだ.NET版はpereleaseだからな
2020/11/01(日) 18:01:16.91ID:CXNCiFbu0
WinUI版のWebView2使ってみたが、マウスの戻るボタンが効いたのに感動したわ
コレをどうにかするためにどんだけ苦労したことか
476デフォルトの名無しさん (アウアウクー MM45-S7XH)
垢版 |
2020/11/02(月) 07:35:20.34ID:kZXAdCJzM
クラスの自動プロパティについて質問
自動プロパティがない頃は、頭にアンダースコア(_hogeHoge)をつけたprivate変数を用意しておいて、
コンストラクタやメソッドではそちらを読み書きしていた。

でも自動プロパティができたら、アンダースコアのprivate変数は不要になった。
これまで何も考えずに、コンストラクタやメソッドではプロパティそのもの(HogeHoge)に対して読み書きしているんだが、これでいいんだろうか…

それともクラス内部で読み書きが発生する場合は自動プロパティ使わないほうがいい?
2020/11/02(月) 08:40:37.73ID:J1SwCvmZ0
getterに副作用持たせてるの?
478デフォルトの名無しさん (アウアウクー MM45-S7XH)
垢版 |
2020/11/02(月) 08:54:07.90ID:kZXAdCJzM
>>477
何も考えずにpublic string HogeHoge{get;set;}しか書いてない
2020/11/02(月) 12:37:17.75ID:NZsZuJ1ia
>>476
何を悩んでるのか分からない。

同じ機能なら簡潔に書けるほうがいいに決まってるので
自動実装プロパティーで必要な機能が過不足なく実現できるなら
自動実装プロパティーを使わない理由はないんじゃないの?

別にpublicやinternalなメンバーにクラス内からアクセスしてはいけないなんて変なルールはないよw
480デフォルトの名無しさん (アウアウクー MM45-S7XH)
垢版 |
2020/11/02(月) 12:39:05.37ID:kZXAdCJzM
>>479
そのそんなルールはないよというのが聞きたかった。
ありがとう。
2020/11/02(月) 13:48:19.73ID:iMasp6IMD
c#にも、cでいうプログラミング言語Cみたいなバイブルと言える本はありますか?
482デフォルトの名無しさん (ワッチョイ a95f-pubH)
垢版 |
2020/11/02(月) 17:57:45.09ID:9N3uvmex0
どんどん言語がアップデートされていってるからなあ
2020/11/02(月) 18:02:08.07ID:kfCt0hOOd
googleかmsか
ufcppでもいいと思うけど
2020/11/02(月) 18:19:04.77ID:8cdEIkcV0
K&Rみたいな読んでるとドヤれる(気がする)ようなのはC#ではないよね
2020/11/02(月) 19:33:36.63ID:QcicrBn8M
ちょっと前までrtfでインストールされてたじゃん
2020/11/02(月) 21:55:02.37ID:KMJSmLX80
>>481
「プログラミング.NET Framework 第4版」Jeffrey Richter 著、藤原 雄介 訳 
487デフォルトの名無しさん (オッペケ Src5-3TaV)
垢版 |
2020/11/02(月) 22:06:56.80ID:8/l8UOwbr
ガチの素人で趣味でプログラミングを始めました
フォントファミリー名を取得してフォントファミリー名一覧コンボボックスを作成、そのあとコンボボックスで選んだフォントファミリーの名前で横においてるテキストブロックのフォントを変えるプログラムを作ってるんですけど、選択したコンボボックスからフォントファミリー名の取得はできてると思うんですがテキストブロックのフォントが変わりません
どうすればうまくいきますか?
2020/11/02(月) 22:27:22.35ID:onwGyibB0
pictureBox1.Image = @"パス";

PictureBoxで画像を表示している時、別の画像に切り替えるときはDisposeしてからパスを変更したほうがいいでしょうか?
489デフォルトの名無しさん (オッペケ Src5-3TaV)
垢版 |
2020/11/02(月) 22:31:57.70ID:8/l8UOwbr
もしかしてフォントファミリーは文字型変数じゃ指定できないの?
2020/11/02(月) 22:51:52.41ID:IceSdPzo0
>>489
たぶんFontFamilyの名前が間違っている
>>488
メモリが一時的に積みあがっていくけど適当なところでガーベージコレクタが動くはずだから問題ない
それはDispose()というかGC.Collect()で解決する
2020/11/02(月) 22:54:08.63ID:NZsZuJ1ia
>>487
適当にやってみた
public Form1()
{
  InitializeComponent();

  cboFont.DropDownStyle = ComboBoxStyle.DropDownList;
  cboFont.DisplayMember = "Name";
  cboFont.Items.AddRange(FontFamily.Families);
  cboFont.SelectedIndex = 0;

  cboSize.DropDownStyle = ComboBoxStyle.DropDownList;
  for (int i = 6; i < 81; i++) cboSize.Items.Add(i);
  cboSize.SelectedIndex = 0;

  EventHandler eh = (sender, e) => textBox1.Font = TextFont;
  Load += eh;
  cboFont.SelectedIndexChanged += eh;
  cboSize.SelectedIndexChanged += eh;
}
2020/11/02(月) 22:54:27.55ID:NZsZuJ1ia
private int TextSize
{
  get
  {
    return (int)cboSize.SelectedItem;
  }
}

private Font TextFont
{
  get
  {
    return new Font((FontFamily)cboFont.SelectedItem, TextSize);
  }
}
493デフォルトの名無しさん (オッペケ Src5-3TaV)
垢版 |
2020/11/02(月) 23:36:41.20ID:8/l8UOwbr
ありがとうございます
今日はもう遅いので明日やってみます
2020/11/02(月) 23:49:15.55ID:onwGyibB0
>>490
そうなのですね
そのままパスを変更するだけに留めます
先輩ありがとうございます!
2020/11/03(火) 01:34:50.34ID:qmbI+CcG0
>>494
こいつVBAで荒らしていた馬鹿じゃないか?
2020/11/03(火) 01:58:10.34ID:jzL8Touo0
>>495
VBAスレは見てないので人違いですね
2020/11/03(火) 08:28:33.94ID:dsOM4bkh0
MahApps.MetroってC#はどうってことないがxamlがヤベえのね
498デフォルトの名無しさん (ワッチョイ 515f-j5Tt)
垢版 |
2020/11/04(水) 13:54:59.77ID:MUmomvCg0
GUIはXAMLが基本です
2020/11/07(土) 10:45:15.58ID:t7w6OMp4a
プログラムの実行を優先して、ユーザーのマウスやキーボード操作をパソコンが受け付けないようにしたいんですが可能ですか?
2020/11/07(土) 10:51:39.94ID:nZ+0GoS70
それをするとプログラムに(応答無し)って表示されるけど可能は可能
2020/11/07(土) 12:17:39.90ID:39mGoKKv0
メッセージポンプして全部removeしてしまえばよろし

あかよろし
2020/11/07(土) 12:59:34.40ID:t7w6OMp4a
>>500
応答なしと表示されても問題ありません。ボタンを押した後、プログラムの一部区間だけユーザーの操作を無効化したいです。
理由は、ダイアログボックスが表示されてからSendKeysで文字を入力する際に、他の操作によりプログラムが正常動作しない時があるためです。SendKeysしか方法がなかったのでそうしています。
2020/11/07(土) 13:48:23.82ID:GpP1ZiKDa
>>502
SendKeysじゃなくてWin32のPostMessageかSendMessageを使うことを
考えるべきじゃないの?

SendKeysの仕様に合わせるためにそんな大鉈を振るうとかまともな考えとは思えんよw
2020/11/07(土) 14:59:35.50ID:6IQ4ek2K0
>>499
マウスイベントとキーボードイベントをグローバルフックして、イベントをチェーンせずに握り潰す
2020/11/07(土) 16:41:34.70ID:cxYX5+z2p
>>503
アドバイスありがとうございます。SendMessageを使ってみます。ウインドウハンドルを掴むのが難しそうですが…がんばります。

>>501>>504
すみません。初心者には難しそうです。諦めます。
2020/11/07(土) 22:57:41.32ID:39mGoKKv0
sendを理解出来るならpeekも出来るでしょ?
2020/11/09(月) 13:06:44.87ID:YQs0Gheb0
.NetCore3.1のWPFアプリってエントリポイント変えられないの?
WPFのエントリポイント変更でググるとApp.xamlのビルドアクションを「アプリケーション定義」から「ページ」に変更してMainメソッド作ればいいって書かれてるけど
.NET Coreだとまずそのビルドアクションを変えられない
2020/11/09(月) 13:27:48.21ID:9M/x9jqfd
>>507
こんなん?
https://blog.magnusmontin.net/2020/01/31/custom-entry-point-wpf-net-core/
2020/11/09(月) 14:29:20.29ID:YQs0Gheb0
>>508
ありがとう
出来た
2020/11/10(火) 12:46:09.92ID:Wkf+3jxV0
.net5が今日発表される予定らしい
https://www.dotnetconf.net/
511デフォルトの名無しさん (ワッチョイ b19b-t1Nk)
垢版 |
2020/11/10(火) 14:36:59.32ID:gS6kMlPu0
.NET5でVisual Studioはどう変わるの?
我々はこれまで通り「プロジェクトのプロパティ」から「対象のフレームワーク」で3.5を選んどけばいいんでしょ?
2020/11/10(火) 20:55:17.07ID:PRedF3Ga0
3.5?
2020/11/10(火) 21:45:01.26ID:ZFV7gHPc0
3.5は流石に草生える
514デフォルトの名無しさん (ワッチョイ 1261-4vwL)
垢版 |
2020/11/10(火) 21:54:25.94ID:whduyV8l0
4.0だろ当然
515デフォルトの名無しさん (ラクッペペ MM96-0qd5)
垢版 |
2020/11/10(火) 22:16:39.16ID:HXXQLae8M
4.0はサポートされていないの?
3.5のほうがいいわけ?
2020/11/11(水) 00:11:32.86ID:9mAhI+SY0
混乱しておりますねえ
2020/11/11(水) 00:42:32.57ID:BDEAVR3x0
サポート切れの4.0使うよりは3.5縛りのほうが健全に思えてきたわ
4.5.2に揃えたいけど、古いサーバー多いのよね
518デフォルトの名無しさん (ワッチョイ d55f-tE7G)
垢版 |
2020/11/11(水) 01:37:56.99ID:foWqNnZI0
>>511
我々は先(.NET 5)に行く、君は3.5を頼む!
2020/11/11(水) 02:30:08.95ID:szx2KMpX0
>>517
すまないこのファイルZIPでくれ。
なぉ外部DLLの読み込みはダメ
2020/11/11(水) 04:26:49.73ID:zN1eFwAm0
元ネタがわかんねえw
うち3.5どころか2.0や1.1の化石あるぜ……嘘みたいだろ?
2020/11/11(水) 07:13:29.31ID:A0Zt6oTk0
C++部がVC6でしかビルドできない
2020/11/11(水) 07:32:57.28ID:szx2KMpX0
zip関係は4.xから標準実装
2020/11/11(水) 07:48:32.66ID:DyE7m0HI0
configファイルを作らないまたは削除する連中が嫌いだわ
2020/11/11(水) 10:40:12.91ID:96Q/I0na0
VS16.8.0に更新したら.NET Coreのプロジェクトは1クリックで.NET5に移行出来たな
.NET Frameworkのプロジェクトも簡単に移行できるのかな?
2020/11/11(水) 10:44:10.46ID:QZePbwpJM
できるわけないでしょ
WebFormsとWCF廃止の時点で半数くらいのアプリは事実上移行不可能
そうでなくても変なサードのライブラリ使ってたりして移行できないケースも多いだろうね
2020/11/11(水) 12:47:24.27ID:5X85No/50
16.8でuwpのリリースビルドが実行不能になったわ
2020/11/11(水) 19:44:06.91ID:96Q/I0na0
あれ、.NET5ってWindowsアプリからコンソールアプリに変更できないの?
プロジェクトプロパティから出力の種類をコンソールアプリに変えてもコンソール出てこないんだが
プロパティ開きなおすとWindowsアプリに戻ってるし
2020/11/11(水) 20:49:57.45ID:WaPRIfZP0
WCFって代わりに何使えって言ってる?
2020/11/11(水) 21:00:29.49ID:szx2KMpX0
>>528
MQTT
2020/11/12(木) 00:35:56.66ID:qoiJF5zI0
C#実践しながら効率良く覚えたいんだけど良い教材ないかな
とりあえずWinアプリ作りたい
頑張って独習C#を9割読んだのにもうほとんど内容覚えてない
2020/11/12(木) 00:56:44.98ID:nVOC+il80
そりゃ手を動かさんと覚えんよ
2020/11/12(木) 00:59:41.35ID:+Hg40DyF0
何でも良いから作りゃいいんだよ
ベタなのは電卓
少機能なものをガンガン作る
2020/11/12(木) 02:56:18.65ID:XDpnN8VW0
仕事してるならいつもやってるちょっとした作業を代替させるようなアプリがモチベになるきっと
534デフォルトの名無しさん (ワッチョイ cbda-sZPU)
垢版 |
2020/11/12(木) 05:54:42.02ID:6+k25fjF0
WinUIとMAUIの区別が曖昧にしか認識できてないんですが、
具体的な違いを説明してくれてる情報源があれば教えてください。
2020/11/12(木) 06:11:12.88ID:xNvOr4tgd
日頃やってる単純作業をなんでもいいから自動化
エロ動画収集とかエロ画像整理とかあるだろ
536デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
垢版 |
2020/11/12(木) 12:00:28.21ID:f5BAQJxFF
>>533
めっちゃ判ります
画面キャプチャしてpdfに製本するアプリ造ったら捗った
537デフォルトの名無しさん (ワッチョイ dd9b-Y0tO)
垢版 |
2020/11/12(木) 14:31:20.02ID:s2LM5erN0
C#で小数点の倍精度演算をするには自分で作るしか無いの?

整数はBigIntegerで出来るのに
2020/11/12(木) 14:41:04.78ID:pnQCXdZla
Double 構造体
https://docs.microsoft.com/ja-jp/dotnet/api/system.double
> 倍精度浮動小数点数を表します。
539デフォルトの名無しさん (ワッチョイ dd9b-Y0tO)
垢版 |
2020/11/12(木) 15:01:22.45ID:s2LM5erN0
倍精度じゃ無くて多倍長だった
めんご
540デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
垢版 |
2020/11/12(木) 15:16:14.73ID:f5BAQJxFF
BigInteger
541デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
垢版 |
2020/11/12(木) 15:21:45.07ID:f5BAQJxFF
https://archive.codeplex.com/?p=Sine
https://web.archive.org/web/20130225114124/http://www.emilstefanov.net/Projects/GnuMpDotNet/
542デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
垢版 |
2020/11/12(木) 15:30:12.32ID:f5BAQJxFF
こっちか
https://www.nuget.org/packages/Math.Gmp.Native.NET/
https://ja.wikipedia.org/wiki/GNU_Multi-Precision_Library
543デフォルトの名無しさん (ワッチョイ dd9b-Y0tO)
垢版 |
2020/11/12(木) 17:45:20.41ID:s2LM5erN0
>>542
Math.Gmp.Native.NET
有効桁数20桁じゃん

メモリが許す限りの桁数の小数点数を扱いたいときはどうするの?
2020/11/12(木) 17:46:57.77ID:6nU3MdtG0
>>543
それを標準機能や標準関数で実装してる言語ってあるの?
2020/11/12(木) 17:49:22.72ID:yAJG0kR/0
>>543
メモリが許す限りの何かを扱いたいのなら数値に限らず自作しないと、そんな都合のいいものはない
2020/11/12(木) 18:50:06.12ID:n9rTzoEP0
>>545
馬鹿は黙っていれば良い例
2020/11/12(木) 19:03:16.89ID:eGo0h3N+0
Pandasに相当するライブラリないの?
2020/11/12(木) 19:03:45.07ID:eGo0h3N+0
まあC#でやる必要ないかw
2020/11/12(木) 19:52:59.46ID:OqW4/kLba
ググってみたらdoubleの仮数部は52ビットらしけど、52ビットの分解能じゃ
不足する分野って何なんだろうねw

地球の赤道に1ミクロン単位で目盛りを振っても余裕でおつりがくる分解能みたいだけど
2020/11/12(木) 20:42:07.53ID:aPogCkhJ0
>>549
円周率じゃん?
2020/11/12(木) 20:42:17.55ID:/VjS/nppM
>>549
オーダーの異なる多数の数値を何も考えずに前から順に足し合わせたりすれば簡単に狂うよ
2020/11/12(木) 21:28:06.03ID:+Hg40DyF0
めんどくさいから整数で演算して結果の小数点を動かすわ
ってかみんなそうやってやんないの?
そりゃ高パフォーマンスで多倍長浮動小数扱えるならそれが一番だろうけど
2020/11/12(木) 21:30:18.59ID:mp0oTovH0
一番面倒臭いのはケチ付けたいだけのID:s2LM5erN0
2020/11/12(木) 21:32:48.72ID:WhH2oDBM0
GMP使うからC#ではせんな。
CUGにmiracle ってライブラリーがあったけど
これも当然C#用では無いなぁ
2020/11/12(木) 21:51:54.26ID:OqW4/kLba
>>552
誤差が累積しないような演算方法を工夫するのが普通だろうね
556デフォルトの名無しさん (ワッチョイ 4bbb-6GPh)
垢版 |
2020/11/12(木) 21:59:49.04ID:4tCV4GAu0
すまんが、↓こう言う時の「=>」ってどう言う意味なの?
string asdf => $"jkl";

この画面の11行目でそんな感じのが出てきたんだけど・・・・
https://youtu.be/wTmZCu16LNU?t=1094
2020/11/12(木) 22:15:18.46ID:QnwokErS0
読み取り専用プロパティの簡単な書き方
string asdf { get { $"jkl"; } }
string asdf { get => $"jkl"; }
string asdf => $"jkl";
string asdf { get; } = $"jkl"; // これだけ意味が違う
2020/11/13(金) 00:55:38.66ID:eU7TEgK20
>>565
private string _asdf = $"jkl";
string asdf { get { return this._asdf; } }

を1行で書いたもの
2020/11/13(金) 05:21:57.56ID:quhoX/Ovr
>>543
何の計算したいの?
560デフォルトの名無しさん (ワッチョイ 459b-Y0tO)
垢版 |
2020/11/13(金) 11:17:32.36ID:d7Iu7DLU0
>>559
単なる道楽なんだけどね

昔の放送大学でUBASICを使った自然対数の底と円周率の演算をやってたから
同じことをC#でやろうと思ったけどIEEE754の倍精度実数では桁が足りなかった

BigIntegerがあるならBigFloatも欲しかったなと
561デフォルトの名無しさん (ワッチョイ 159b-NSHw)
垢版 |
2020/11/13(金) 11:21:41.58ID:RWm0omqa0
放送大学アーカイブズ
懐かしの名講義
再放送中毒
2020/11/13(金) 11:32:20.13ID:ehJZ/AtC0
https://bangumi.ouj.ac.jp/bslife/detail/01625005.html
2020/11/13(金) 12:37:29.01ID:907SkV9V0
>>560
結局欲しいのは多倍長整数なのか倍精度浮動小数なのか
道楽なら自作ライブラリでも作れば良い
2020/11/13(金) 14:16:13.05ID:WOWtwvuFd
>>563
なんでずれた回答するの?
「作るしかない」
なら良い回答なのに。
新しい人どんどん減っちゃうよ
565デフォルトの名無しさん (ワッチョイ 159b-NSHw)
垢版 |
2020/11/13(金) 14:18:25.76ID:RWm0omqa0
「作るしかない」
の方が最近の新しい人は逃げる傾向にあるからな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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