[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 04:32 / Filesize : 279 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:53:21.18 ID:dhjmiKBp0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part152
mevius.5ch.net/test/read.cgi/tech/1629888256/
■関連スレ
C#, C♯, C#相談室 Part94
mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
https://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/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・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

758 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 00:57:35.59 ID:yyC8EMRk0.net]
共変と反変という言葉がよく分かりません
アップキャスト/ダウンキャストと何が違うんでしょうか?

759 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 02:01:57.32 ID:r2dC59Vr0.net]
class B{}
class C:B{}
class D:C{}
static D Function(B b){ return new D();}

Func<C,C> fp = Function;

Functionの返り値DはCの派生クラスだから返り値CのFunc扱いしても大丈夫だよねってのが共変
Functionの引数BはCのベースクラスだから引数CのFunc扱いしても大丈夫だよねってのが反変

両方ともアップキャスト(asがいらない)が約束されてるから許される

760 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 04:17:33.74 ID:9FYmM/Q0a.net]
ハロウィンの子供にチョコレートを渡せることが反変で
チョコレート工場をお菓子工場とみなせることが共変ってことか

761 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 08:32:03.92 ID:kufT2hajr.net]
よく理解できるね
これを理解したとしても他人がコードを読むの大変だよね
コメントに書いておくものなの?

762 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 10:57:27.37 ID:r8LIAXWEM.net]
c#自体にそういう機能があるので楽だねって感じ
うまくいかない場合は何か思い違いしてる

763 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 22:48:46.71 ID:0wwLw+zrM.net]
>>746-747
めちゃくちゃ分かりやすいです
ありがとうございました

764 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 22:52:58.30 ID:DQ1OUxKV0.net]
なにこれ
もしかしてnullになるかもしれんやつは片っ端から?つけなきゃいけなくなったの??

765 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 23:17:35.13 ID:Yoc43dCB0.net]
そうだぞ

766 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 23:37:35.61 ID:DQ1OUxKV0.net]
なんか俺かっぺになった気分だべ・・・



767 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 01:35:08.87 ID:xgyvtLBZ0.net]
nullチェックをコンパイラが管理するやつだから慣れれば神機能

768 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 06:49:46.16 ID:sQZaaq50M.net]
参照前に必ずnullチェックというコーディング規約から解放される?

769 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 07:48:24.01 ID:dpfIrrzB0.net]
なわきゃあない

770 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 08:36:39.06 ID:odBVOzqN0.net]
on/offを行単位で切り替えられるから混乱すると思う

771 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 09:30:40.13 ID:AMYiKIMXM.net]
行単位でそんな事する奴はすでに混乱してるだろw

772 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 09:57:57.24 ID:dGbyTm5r0.net]
何が利点なんだろうネ?(笑)

773 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 10:16:46.92 ID:z2LDxi9+M.net]
まあ利点がわからないなら君は今のままでいいんじゃね?

774 名前:デフォルトの名無しさん [2022/01/22(土) 10:35:14.93 ID:tP9M/cw30.net]
5年ぶりに.Netで作ることになったんだけど、.Net Frameworkってオワコンなの?
Coreとか出てきてさらに.Netに統合されるとか混沌としてて何が今の最適解なのか解らない。
どうせ作るなら今の最適で作りたいからお聞かせ願いたい。
つかWPFって普及前に死んだ感じ?

775 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 10:40:46.17 ID:om6KWGu40.net]
.NET FrameworkはオワコンだけどWindowsに標準で入ってるのでWindowsユーザー視点だと一番有難い
WPFもWinFormsのWindowsであれば現役

776 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 11:13:26.21 ID:dGbyTm5r0.net]
.netもオワコンだが
WPFもオワコンなので
代わりがない状態
他のはもっと過疎ってて
.netやWPFより更に消えやすい感じ
なので何もオススメできない状態



777 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 11:41:22.99 ID:cBfIrJY2a.net]
オワコンっても単なる流行の話だからな中身はオワコンでもない

.NET Framework 4.8
.NET6
今選ぶならこのどちらか。どっちも長期サポートになってるはず
表面的にはどっち選んでも同じ。昔の記憶が残ってるなら4.8使った方がスムーズに扱える

UIは色々増えてるけどwinだけならWinFormsが無難

778 名前:デフォルトの名無しさん [2022/01/22(土) 11:45:58.45 ID:tP9M/cw30.net]
>なので何もオススメできない状態
調べる限り、今はコレってのが無いんだよね。
WPFも生き腐れしてるみたいなので、
無難なWindowFormsと.Net Framework4.6.Xで良いやって思ってます。
ぬるぬるUIによる快感性はiOSに任せようと。

779 名前:デフォルトの名無しさん [2022/01/22(土) 11:49:15.98 ID:tP9M/cw30.net]
>.NET Framework 4.8
ユーザーのコンピュータには.NET Framework 4.6が入ってるので
5年程度を稼働を目安にすると.NET Framework 4.6のが導入のハードルが
低くて良いなと思うのですが、.NET Framework 4.8のが何か優れてるんですかね?
純粋にサポートの長さかな。

780 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 12:08:19.50 ID:cBfIrJY2a.net]
4.6だと今年でサポート終了かな
サポート気にしないなら・・4.xの差で機能的にはほとんど変わってないから何使っても同じ
ただちょこちょこソースコードの書き方が追加されてる(変更じゃなくて追加だから昔の書き方で問題起きない)
ぐぐってソースコードコピペしたときに新しい書式のソースコードだと思わぬエラーがでて困るかもしれないって程度
わざわざ古いの選ぶ意味もないけど、新しいの入れるのが面倒なら古いままでもいいんじゃないって程度だよ

781 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 12:11:29.47 ID:63g4vstfM.net]
基本的には.NET6を選べばいい
既存システムのメンテナンス・マイグレーションなら資産状況次第だけどFW48の方が低リスクで間違いない
ランタイムのサポート期間は意外にもFW48の方が長い
でも開発環境のサポート期間はわからない

782 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 13:06:27.03 ID:MOxbGC/+0.net]
最近は4Kとか高解像度ディスプレイ対応(スケーリング対応)が必要になって来たせいか
WPFを使ってる所が前よりは増えた印象
他に良いのが無いから消去法で採用って感じ何だろうけど

783 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 13:10:19.88 ID:MOxbGC/+0.net]
>>766
スケーリング対応は4.8の方が改良されてる
もっと言えば.NET6の方が進んでるけど

784 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 13:16:37.15 ID:+eWEN8w/0.net]
WPFでもMVVMを考えなくてもWinFormsと同じように使えるし、スケーリング対応が楽なのはいいよね

あと最近のWindows10は標準で4.8が入ってなかったっけ?

785 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 13:25:41.09 ID:i+EsaIAtd.net]
サポート期間を気にするなら.NET6は問題外だよ
なんと2024年にサポート切れ

786 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 13:36:54.52 ID:63g4vstfM.net]
十分だよ
.NETは互換性が高いから.NET8への移行も苦労はせんだろう
他の言語と比べたら天国だ



787 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 14:04:30.15 ID:MOxbGC/+0.net]
>>771
WinFormsの*.Designer.csと*.resxから解放されるのも大きいね
差分を見たりマージするのに問題あり過ぎた

Windows10はMay 2019 Update(1903)から標準で4.8が入ってる
現在サポート中のバージョンは全部4.8が入ってるね

788 名前:デフォルトの名無しさん [2022/01/22(土) 14:08:40.62 ID:gJEoCqwv0.net]
今の最適で作りたいなら.NET 6/WPFだな

789 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 14:33:41.83 ID:KL4k8E210.net]
.NET Frameworkは最終版の4.8でもC#7.3までの対応
C#8.0は.NET Core 3
C#9.0は.NET 5
C#10.0は.NET 6

C#のバージョンを上げるなら.NETも移行せざるを得ない

790 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 14:35:53.77 ID:nTnTl9DUr.net]
わかりました、Mauiで頑張る

791 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 14:44:13.78 ID:Ii2fD9R0a.net]
WPFの方が高DPI(高「解像度」では必ずしもないよね)対応が優れているっていうのは
DPIが異なる複数のディスプレイ間をウィンドウが行ったり来たりするような状況を想定した話?

792 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 14:49:58.72 ID:ARjVXSY1M.net]
WPFってWebみたいに解像度に合わせて画像切り替えるとか標準じゃできないだろ?
HDPI対応が優れているとか片腹痛い

793 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 15:19:51.12 ID:EyuzyEvM0.net]
俺社環だと2012R2なんで4.5.1なんだよな
サポート外だからさっさと4.6移行に切り替えたいけど、不具合出てないから誰もやりたくないという

794 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 16:54:28.58 ID:1FaTcT0G0.net]
>>779
そんなもん解像度は取得できるしなんとでもやりようあるやろ

つうデスクトップGUIアプリに求めることかそれ?
どんなシチュエーションで必要なのかわからん

795 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 18:01:32.84 ID:dpfIrrzB0.net]
想像力が無いだけだなあ

796 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 18:55:07.04 ID:Hnp3kh2k0.net]
>>780
誰もやりたがらないけど、OS のサポート切れが迫ってきて対応中。w
いまさらその上で動いてるオレ様ソフトのインストールの手順とか覚えてないんだけどなあ。



797 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 19:41:02.79 ID:DSkywrpw0.net]
ドキュメントは残しておけよw

798 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 19:49:34.26 ID:vcUHcBQYM.net]
昔自分用に作った(家で自分の時間を使って)アプリがあって退職時に無理やり引き継ぎさせられて勝手に使われてる
PC壊れたときに連絡あってアプリを送った思い出…

799 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 19:51:39.05 ID:vcUHcBQYM.net]
毎日使うものなので劇的に工数が減った
あくまでも自分用

それを恨みこそすれ感謝してない元会社がタダでずっと使ってる

800 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 21:17:29.45 ID:9EvEVFCn0.net]
Main内
Test t = new Test();
t.Num = 1;
t.Add(10);
Console.Write(t.Num);

class Test
{
 public int Num {get; set;}
 public int Add(int p)
 {
  return Num + p;
 }
}

これで出力が1になるのは何故なのでしょう?11になると思うのですが…

801 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 21:22:02.32 ID:vcUHcBQYM.net]
return Num + p;
これは足したものを返してるだけで
Num自体に変更をかけていないからな

Num = Num + p;
return Num;
ならわかる

802 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 21:37:34.36 ID:9EvEVFCn0.net]
あ、、、確かに。納得しました。
ありがとうございました

803 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 23:20:32.09 ID:mmM8IstB0.net]
いえいえ

804 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 14:44:30.58 ID:is+XSiL/0.net]
すみません、初心者で何からしたら良いのか、何をすべきなのか分からなくて助けてください。

計算アプリを作らなければならず、調べてなんとかボタン配置とかはできたのですが、プログラミングが何をどういった順番でするのか分からなくて…

計算は
固定数字÷ボタン入力した数字(+必要に応じて選択した数字)×ドロップダウンで選択した数字

これを出来るようにしたいのですが、やるべきことは
@ボタンとドロップダウンの紐付け?認識?
A入力した数字の表示
B()の条件付け
C計算結果の表示
これで大丈夫でしょうか?

うまく質問できず、申し訳ありません。
今までプログラミングに触れたことが無く、必要情報が不足していましたら追加致します。

805 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 15:13:55.20 ID:XkFSmW1wd.net]
今期の単位は諦めましょう

806 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 15:15:05.76 ID:Wu5qqWWYa.net]
ボタン押したらボタンに対応した値を表示する(固定値で割らなくておk)
それができたら、次は固定値で割った結果を表示するように修正
それができたら、次はドロップダウンの選択が変わったことを知る方法と選択された値を取得する方法調べる
それがわかったら、ドロップダウンの値を掛けた結果を表示できるように修正
それができたら、どんな条件でこういう計算するって条件別け
かな?



807 名前:デフォルトの名無しさん [2022/01/23(日) 15:16:44.75 ID:CCpFlBt8M.net]
それを決めたら他の人がコードを書いてくれるのか?

それならマルナゲをオススメ

808 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 15:20:46.99 ID:is+XSiL/0.net]
>>793
ありがとうございます!

直ぐにやってみます。
やるべきことを分かりやすく教えて頂き、本当にありがとうございます。

809 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 15:30:22.12 ID:is+XSiL/0.net]
>>794
いえ、コードも私が書かなければなりません。
丸投げする相手が居ないです…

810 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 19:04:59.40 ID:nwzKJ0xW0.net]
ひっでえ課題
そんなもんが何の足しになるんや

811 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 19:47:07.31 ID:is+XSiL/0.net]
やっと、数字の表示ができました……
何故か一桁しか表示されなくて、次の数字押したら上書きされるけど、表示はできました…


何のたしになるかは分からないです…

曰く『コロナ禍だけど、この機会に家で出来きることをしよう!』って事らしいです。

812 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 19:48:24.39 ID:is+XSiL/0.net]
投稿が重複してしまいました、誠に申し訳ありません。

813 名前:デフォルトの名無しさん mailto:sage [2022/01/23(日) 23:26:33.12 ID:pR5ferbX0.net]
メンバー'hoge' はインスタンスデータにアクセスしないため、static にマークできます

814 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 12:21:02.64 ID:bXxRLmwJ0.net]
四角をグラフィックに描画する場合の座標について
g.DrawRectangle(pen, 始点x座標,始点y座標,幅,高さ);
このようにあります

ならば幅が2,2の場合
g.DrawRectangle(pen, 16, 16, 2, 2);
これで(16,16)-(17,17)で2ドットだけの中抜きがないものを想像するのですが
実際は
(16,16)-(18,18)の中央に穴がある状態の四角が描画されるようです
これは3,3指定なら理解できるんですが
幅指定なのになぜこのようになってしまうのでしょうか?

815 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 12:39:27.95 ID:zeqExr0Ka.net]
g.DrawRectangle(pen, 16, 16, 1, 1);
g.DrawRectangle(pen, 16, 16, 0, 0);
こいつらはどういう挙動をするべきかを考えたら?

816 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 13:27:00.02 ID:VRumLvNTM.net]
GDIは終点は描画領域に「含まない」
だから、幅として成立する。

FORTRAN由来とかで「含む」系
もあるので注意だ



817 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 14:09:38.84 ID:97kNTb42a.net]
>>801
まあこうは言える。

まずユークリッド幾何学的な数学的に抽象化された世界で考えるべき。
その世界では、1対の平行線の距離がペンの幅より大きければ必ず平行線の間に「隙間」が出来る。

GDI+の描画はこういう抽象化された世界をピクセルの世界に写像してるだけ

818 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 18:54:49.46 ID:97kNTb42a.net]
まあたぶんこんな感じだね

(1) 論理座標の原点は(0, 0)のピクセルの中心に設定されている。つまり論理座標とピクセル座標は
0.5ずれている(少なくともペンの幅が奇数ピクセルの時は)

(2) DrawRectangleは論理的な矩形の辺がペンの中心になるように描画する

(3) だから描画された矩形はペンの幅の1/2 * 2だけ指定したサイズより大きくなる

819 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 19:46:14.25 ID:ph7NlGryd.net]
小数のない世界なら厚みゼロで隙間がないんだろうけど、塗りつぶすならFillRectngleで明示しろってことかな。

820 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:02:24.84 ID:AwkrZJuk0.net]
独習C#やってるんだけど、これを一通りやれば基本は身に付くと思っていい?

821 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:03:27.85 ID:3T3OgJ8A0.net]
信じるしかないだろ。もう買ってしまったのだから。

822 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:23:59.29 ID:bPaq+vdr0.net]
>>807
その本なら自信持って良いよ。
record, using var, initなどのC#8以降の機能は別途学習が必要。
LINQや正規表現などは実践でないとなかなか身につかないので、だいたい理解したらどんどん読み進めるのがおすすめ。
ちなみにプログラミング未経験で、全部読むのに3ヶ月かかりました。

823 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 00:57:13.82 ID:TS8Lm52TM.net]
自分だったら3か月かかるならモチベーションが保てそうにないなw
20年前はそんな本がなく手探りだったけど逆に良かったのかな…

824 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 01:14:23.92 ID:TS8Lm52TM.net]
仕様もライブラリも今よりペラペラだったから入門しやすかった

825 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 01:55:09.45 ID:4qIztPSU0.net]
>>809
ありがとう
プログラミング経験はエクセルVBAのみ
C#は簡単な方だと聞いてたけど難しいね、頑張ります

826 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 12:37:45.33 ID:IaxANYMEd.net]
やっつけ仕事するだけなら今も昔も変わらんと思う

C#の便利機能が山ほど増えてて書きやすくはなってるけどどこまでが入門なのかは正直わからん



827 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 13:20:24.56 ID:S6jLK41vM.net]
Recordとかぜってえ使わねえ

828 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 13:32:46.48 ID:MBxJE5i40.net]
ともーじゃん?
・・・まあ使わなくても済むよなあ

829 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 13:50:18.74 ID:wOQPCoOZM.net]
DTOだらけの低品質なコードが量産されてTypeScriptみたいになりそうな気はしてる

830 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 14:28:40.80 ID:pfxZ0tMsd.net]
おれも独習で勉強した
分厚いから真ん中ぐらいまでくると最初の方忘れてるわ
んでもう一度戻ってやり直したり、途中で挫折したりで
1年以上うだうだ読んでた

読み終わる前にいろいろ作って遊んでたけど
イベントとか非同期処理とか分からないとまともなの作れないんで
途中すっ飛ばしてその辺読んだり

831 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 19:22:56.75 ID:uxP3YVvMH.net]
>>817
その独習、旧版(ハーバード・シルト)?

832 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 19:59:28.45 ID:zF2HduXmM.net]
シルトは過去の人
昔読んだ時もそういうイメージ

文法ぐらいが得意分野

833 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 21:16:01.91 ID:uxP3YVvMH.net]
>>819
では最近の教科書で優れたものは、どなたの著作ですか?

834 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 00:27:57.09 ID:XnQeNwtl0.net]
俺はオライリーの薄いやつで大体把握して、デザパタをjavaの結城さんのやつで学んだな

835 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 10:26:45.87 ID:i4V+v3ft0.net]
C++の本で勉強した知識だけでC#の本は買わず、dobonを見ながら書いてる

836 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 00:37:45.37 ID:UrWQ/KNN0.net]
dobonよく参考にしてるけどもしかして見てるとバカにされる風潮とかあるの?



837 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 00:43:53.93 ID:OmkEpZCo0.net]
昔はよくお世話になったけど、今となっては古い記事が多いので最近はあまり見ないな

838 名前:デフォルトの名無しさん [2022/01/28(金) 05:13:54.08 ID:AmULl7RP0.net]
全ページのヘッダに古い言語仕様の内容であることの明示くらいはしてほしい
あと初心者向けと言いながら
同じ処理でベストプラクティスと非推奨な書き方を同列に載せてるのも印象よくない

839 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 08:13:42.95 ID:MUNMfoCeM.net]
recordはvalueobject作るのに便利
使い捨てのアプリ作るのには不要

840 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 12:18:41.61 ID:g6bFcMDaM.net]
で、あるか

841 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 14:24:04.65 ID:C+lFkEfx0.net]
お世話になります。
ComboBox.IsReadOnly を使おうとしてエラー(usingまたはアセンブリが不足)が出ました。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.combobox?view=windowsdesktop-6.0
で調べ、
名前空間:System.Windows.Controls
アセンブリ:PresentationFramework.dll
を追加しました。
しかし、現時点でエラーに変化がなく困っています。他に考えられる原因があればお教えてください。

842 名前:デフォルトの名無しさん [2022/01/28(金) 14:32:54.24 ID:QwC8uFzi0.net]
「他」とか言われてもお前以外にゃわからんのよ

843 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 14:38:21.72 ID:S6VsJW6p0.net]
>>828
追加したのはWPF用のアセンブリだけどお前が作ってんのはWPFじゃなくてWinFormsだとか

844 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 15:20:17.24 ID:D0DTDHxMd.net]
ComboBoxのインスタンス作らずにプロパティ見ようとしてるとか?

プロジェクトのエラー起こしてるコードさえないからわからん

845 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 15:31:53.40 ID:C+lFkEfx0.net]
>>829>>830
反応ありがとうございます。
はい。WinForms(VisualStudio使用)です。
ソリューションエクスプローラーの参照からアセンブリを探して追加しました。
WPF用ではなかったか確認します。
using System.Windows.Controls と書いて追加した気になっていましたが、
ソリューションエクスプローラーに同名がないのを確認しました。これが原因かもしれないので調べてみます。

>>831
盲点でした。確かにインスタンス化していません。やってみます。

みなさんのアドバイスのおかげで糸口が見えました。あとは自力で頑張ってみます。
また困ったことがあればよろしくお願いします。

846 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 15:36:53.16 ID:bcAzYVuU0.net]
>>832
横からレスだけど、次からは情報を端折らずに書いてね
場合によるから



847 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 15:38:40.89 ID:bcAzYVuU0.net]
>>832 833の追記
WinFormsのComboBoxはSystem.Windows.Formsの方だったはず

848 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 15:51:48.62 ID:C+lFkEfx0.net]
>>832
反応ありがとうございます(横レスでも大歓迎です)
情報を端折ってしまったようで今後気を付けます。
必要になる正しい情報とはこちらでよろしいですか?

エラー CS1061 'ComboBox' に 'IsReadOnly' の定義が含まれておらず、型 'ComboBox' の最初の引数を受け付けるアクセス可能な拡張メソッド 'IsReadOnly' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください

それとも部分的であってもソースでしょうか?今回の問題では必要ないと判断してしまいましたが、次回以降気を付けます。
次回もぜひお願いします。ありがとうございました。

849 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 16:04:30.29 ID:AFiLYmq20.net]
単に、WinFormsのComboBoxにはIsReadOnlyプロパティが存在しないだけだな

https://atmarkit.itmedia.co.jp/ait/articles/0711/01/news152.html

850 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 16:32:10.58 ID:bcAzYVuU0.net]
>>835

エラーメッセージもそうだけど、こっちが言ってたのは「WinFormsかWPFか」の方だね
WinFormsの方のComboBoxにはDropDownStyleプロパティがあるからこれにComboBoxStyle.DropDownListを渡せば選択可能で文字列入力を受け付けないタイプになるよ
(まあ、他の人がすでに提示しているようだけど)

851 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 16:34:15.50 ID:ycXEhqEs0.net]
もしかして Enabled

852 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 17:05:47.31 ID:C+lFkEfx0.net]
みなさん親切で涙が出てきます。
>>836・837・838 反応ありがとうございます。

・C#にはWinFormsの他にWPFがあったのですね。WPFという言語なのかと思っていました。
今後はエラーメッセージと共にWinFormsであることを最初に宣言します(初心者すぎてすみません)

IsReadOnlyプロパティが存在しない
・はい。通常のプロパティでは見つけられませんでした。
こちらのサイトを参考にさせてもらい挑戦していました。
https://blog.t5o.me/post/20140316/c-sharp-xaml-combobox-read-only.html

・ComboBoxStyle.DropDownListとEnabledも試しに設定しました。
やりたいことは、
コンボボックス横にチェックボックスを設置
チェックボックスが真の時、コンボボックスを規定値にし操作不可能にすることですが、
上記設定でもドロップダウンボタンが反応するので別の方法を探し、上記サイトにたどり着きました。

・第2案として、チェックボックスが真の時、コンボリストを規定値以外を削除し対応しようかと考えています。
(ドロップダウンリストが空白で1行出てきてしまうのがかっこ悪いかなと考えて最善を探していました)

なんとか頑張ってみます。みなさんありがとうございました。

853 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 17:14:46.64 ID:AFiLYmq20.net]
>>839
System.Windows.Forms.ComboBoxを継承してカスタムコントロールを作るってのが調べると出てくると思うよ
例えばこんなのとか
jeanne.wankuma.com/library/readonlycombobox/

854 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 17:20:12.41 ID:OmkEpZCo0.net]
>>839
839のリンク先もそうだけど、記事にXAMLって単語があったらWinFormsと無関係だと思って良いよ
WinFormsのコンボボックスの操作不能にするのは、comboBox.Enabled = false;

855 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 19:13:46.87 ID:l6dMzLky0.net]
c# + visual studioでデータブレークポイント使えますか?
c#のクラスは参照型ですが、値のコピー
(int型変数i,jだと、i = jに相当する処理)
するにはどのようにすればよいのでしょうか?

856 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 19:27:11.67 ID:LzvJDC40a.net]
ブレークポイントの上で右クリ→条件



857 名前:デフォルトの名無しさん mailto:sage [2022/01/28(金) 20:10:31.96 ID:LzvJDC40a.net]
コピーはコピー先をnewして作って、メンバー変数の値をそこに一個ずつコピーしてく
クラスによってはそういうnewとコピーをしてくれるClone()を持ってることもある

858 名前:デフォルトの名無しさん mailto:sage [2022/01/29(土) 16:47:47.80 ID:3whatsSd0.net]
独習C#で学習されている方が多そうですがマルチスレッド難しすぎないですか(泣)
新版を使っておりますが、P530〜の説明が意味不明です
awaitとWait()メソッドの違いがよくわかりません
どちらもタスク(サブスレッド)の処理を待機するという同じような意味という理解ですが、
なぜかサンプルプログラムで両方使われています
試しに片方削除して実行すると、ループが最後まで実行されないので、意味が違うんでしょうが調べてもよくわかりません…
どなたかご教示いただけないでしょうか






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef