ふらっと C#,C♯,C#(初心者用) Part135
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part134 http://mevius.5ch.net/test/read.cgi/tech/1511951038/ ■関連スレ 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: default:vvvvv:1000:512:----: EXT was configured >>779 関係ないクラスを一緒くたに管理しないほうがいいってこと マシン設定ならマシン設定 データベース設定ならデータベース設定 権限管理なら権限管理 アイコン管理ならアイコン管理 プログラムは1つ1つ関心ごとに分けて後で組み合わせるのが基本 設定項目も一緒くたにしないで個別に設定クラスを作る >>779 アクセス名が長くなるから外に出せば見栄えが良くなる。 public staticだから動作には関係ない ここで何でも聞いて気にするより動かしてみて確認したほうがいい >>779 Programのデフォルトの公開範囲がprivateだから って思ったんだけどクラスって省略されるとinternalなんだね じゃあ別にやってもいいかな ただ、各フォームから起動元であるprogramクラスにアクセスするのは違和感があるからインナークラスは推奨しない よく言われるグローバル変数にせず、フォームの起動時に引数で渡せばいいと同じレベルの話だから余り気にしなくていいかも >普通はVSのフォームデザインでプロパティからApplicationSettingにてPropertyBindingを行う これはどういう意味や? バインディングってのはデータソースがコロコロ変わる時に便利なだけだろ。何でグローバル変数みたいな 変わらんものに「普通は、、、、使う」なんて言いきれるんだ。 意味わからん。 グローバル変数(static変数)なんて難しすぎる機能は初心者には扱いきれないでしょう 普通にコンストラクタやメソッドに必要なものを渡していけば確実、安全、簡単だよ var loginForm = new LoginForm(); loginForm.ShowDialog(); var loginUser = loginForm.LoginUser; var loginService = new LoginService(); loginService.Login(loginUser); var systemInfo = SystemInfo.Read(); var databaseModule = new DatabaseModule(loginUser, systemInfo); var authModule = new AuthModule(databaseModule, loginUser, systemInfo); var domainService = new DomainService(databaseModule, authModule); var iconManager = new IconManager("url://to/icon/resource/base"); var formFactory = new FormFactory(databaseModule, authModule, domainService, iconManager, loginUser, systemInfo); Application.Run(formFactory.CreateMainForm()); loginService.Logout(loginUser); 設定値と処理を密にすると 設定値集Aと設定値集Bとか異なる設定で動かさなきゃいけないときにウザいよ それを消そうとするとグローバル変数は消えるけど 仕様でそういったもんが別にいいなら問題は起きない 環境変数みたいにインストール時に固定なんだよ的な >グローバル変数(static変数)なんて難しすぎる機能は初心者には扱いきれないでしょう 何を根拠に難し過ぎるというのか意味不明だ。 複雑だからか? どう複雑なんだ? 複雑なわけない。w 他に難しい理由があるのか? 誤動作するからか? するわけない。w ちゃんと理由を上げて説明してみろよ。 >>758-760 、>>762 ありがとうございます 参考になりました。頂いた内容で再検討してみます 入力可能なコンボボックスの値を取得したい。 ドロップダウンで選択した値を取得する事は出来た。 手入力した値を取得するのはどうすればいいのでしょうか? https://i.imgur.com/Xh6vU1X.jpg ググったら selecteditem.tostring()でやってるのが多いけどそれだとどうなの? >>791 こうですか? if (comboBox.SelectedItem != null) //cb = ((ComboBoxItem)comboBox.SelectedItem).Content.ToString(); cb = comboBox.SelectedItem.ToString(); else //comboBox.SelectedIndex = -1; cb = comboBox.Text } 値の前にこんな文字も取得してしまいす System.Windows.Controls.ComboBoxItem: if〜で選択した値は取得できてます。 else〜で手入力した値を取得したいのですがうまくいきません。 >>790 何が聞きたいのかもっと明確にしないと誰も答えようがないと思うw 説明が下手なら(たぶんそうだと思うがw)人に冗長だと思われることをいとわず くどくど馬鹿丁寧に書いて 編集可能コンボボックスを編集してSelectionChangedイベント発生するか? >>792 cb = comboBox.Text これだけで良くない? if elseで分岐させる意味よく分からない >>794 しないね。 >>790 KeyUpイベントでComboBoxのTextプロパティを読めば良い。 killfocus的なイベントで取得しねーとあれっしょ? >>795 そうすると、値を手入力したときに、選択した項目の値がおかしくなるんです >>797 そこら辺はケースバイケースかな。 >>798 WPFみたいだから、そのイベントは無いぞ。 >>798 これは駄目でした private void comboBox_TextChanged(object sender, TextChangedEventArgs e) { String cb = comboBox.Text; } そもそもコンボボックスでリストにない値を使うやり方がおかしいんですかね? <ComboBox x:Name="cb" IsEditable="True" TextBoxBase.TextChanged="cb_TextChanged" /> private void cb_TextChanged(object sender, TextChangedEventArgs e) { var text = cb.Text; } >>805 おぉ、そんな使い方が。 >>798 すまない。>>800 は間違いだった。 >>805 出来ました。ありがとうございますm(_ _)m >>807 スマホで撮った画像を上げるのはよくない コードを貼れ 画像を貼るにしてもwindows標準のsnipping toolで必要なところだけ切り取ってアップしろ >>808 すみません PCでここを開けなかったもので… 画像サイズもデカすぎました 次から気をつけます そんなしょうもないことに上から目線で偉そうにいう馬鹿に謝る必要ないのにw 一歩引いた視点からスレを冷静に観察できる俺カッケー StreamWriterでファイルの末尾へ書き込む場合、 ファイルのサイズは書き込み速度に関係しますか? >>818 回答でいいんですよね? そのようです。ありがとうございます なんでだろうね? 関係しそうな気がするのに不思議だよね 逆にどんなファイルシステムなら影響が出るのかそっちの方が気になるよw ただのラッパーだから分からないが正解。Streamに依存するが正解。DATならまあ遅くなるわな。 そうかな CMTだろうが穿孔テープだろうが関係ないと思うけどw 関係ないよw メディアの問題というよりファイルシステムの問題 シーケンシャルにしかアクセスできないからシークが遅いとか、そもそも追記ができないとかいう話なら分かるが、 追記可能なのに書込み速度がファイルのサイズに影響するファイルシステムってちょっと思いつかん >>825 記憶媒体がどういう仕組みで記憶してるのかよくわからないから メモリみたいなの想像してみた 追記に足りない領域しか空いてなかったら再確保するんじゃね?みたいな 業務アプリばっかりやってきて最近のトレンドに全くついていけてない老害に教えてやってほしいのですが、 ●やりたいこと WPFアプリ、SQLite(最新)を使用、EntityFrameworkで実装したい DBはそれほど複雑でなく、せいぜい2つのテーブルをjoinする程度、あとは、各テーブルをCRUDする感じでサンプルに毛が生えたようなレベルです。 .NETのバージョンはv4.6.1とした場合、 どのパッケージを使用したらよいだろうか?が知りたいです。 参考にしたいな、と思った記事は、 https://qiita.com/massu/items/b2546a0d876e207de882#%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90 SQLiteで簡単にEFできるかな?と思ってコードを眺めていました。 だが、パッケージ名で.NET Coreを使用するように見えてしまい、 WPFで使っていいの?など何が何やら、、、 本人のバックグラウンドとしては、v3.5程度までの業務コーディング知識は あるつもりなのですが、なかなか最近の技術、名称についていけておらず。。 最近のトレンドに乗りつつ、知識をつけつつ開発したいと思っています。 ちなみにこのアプリは業務使用ではないのです >>829 まずはこの辺の誤解を ・WPFは最近のトレンドなどではなく、とっくの昔に死んだ技術である ・EFはサーバー用のオーバーヘッドが極めて大きいフレームワークであり、デスクトップアプリで使うものではない 一番大きなギャップは、今の.NET界は完全にWebに傾倒していて、コミュニティの話題や新しい技術はほぼ全てWebであるということだな デスクトップアプリなんか完全に時間止まってるから.NET 3.5の知識だけで全く問題ないよ >>831 >EFはサーバー用のオーバーヘッドが極めて大きいフレームワークであり、デスクトップアプリで使うものではない ソース >>831 「死んだ」の定義を トレンドでないというのはその通りだが >>825 抽象度の違う話だけどフラグメント化の状態によってはファイルサイズが大きくなると書き込み速度遅くなるよね? WPFが生まれた時からずっと疑問なんだが これって覚えたほうがいい技術なのか? すぐ主流になるだろうからそれから乗り換えようと思ってもう何年もたつんだが まぁWinFormsよりはマシじゃねえかなという感じ MSはhtmlとjavascriptでデスクトップアプリを作るPWAに手を出し始めた C#自体がどうなるか不透明にになってきたね xmlでシリアライズするときに、配列のタグに番号を付与していくにはどうしたらいいのでしょうか >>844 なんか勘違いしてるみたいだが、PWAはWebアプリだぞ 今時ガワで何でもやるアプリなんてほとんど無くて、重要なのはWeb越しにある裏側の仕組みだ つまり、PWAサポートするからバックエンドをVSやAzureで作ってね、ということ そして、MSはC#を最重要なWebバックエンド開発言語として位置付けている 今更デスクトップアプリなどという時代遅れな技術を使いたくない、Web技術で全部作らせろ、というニーズは.NET開発者からも多いんだぞ? 今時C#=Winデスクトップアプリ向け、なんて言ってるのは10年遅れ >>847 C#の強みは、デスクトップとwebが同じテクノロジーで構築できることだろうし ソレが崩れたらバックエンドの代わりはいくらでもあると思うんだわ javaでもphpでもrubyでも >>848 今時Webできない開発者なんかいない(そうでない連中はどうせ新しい物買わないし先細りだし放っといてもMSから逃げられないから餌をやる必要がない) MSから見ればそこに拘る意味がなくなってるんだよ 今の.NETプラットフォームはAzure含めて純粋にWebプラットフォームとしての使いやすさで勝負していて、 十分に競争力のあるものになってるし実際大成功してるよ 見様見真似で勉強始めたばかりの初心者です 以下の記述でerror CS0234が出まして、ここから学習が進んでません class test001:System.Windows.Forms.Form { static void Main() { System.Windows.Forms.Application.Run(new test001()); } } スクショttps://dotup.org/uploda/dotup.org1474023.jpg.html 各単語の意味もわかってませんが、 空のウィンドウが表示されるだけのソースのつもりで書いてます 1.基本的にこの記述は間違っているのか 2.error CS0234の対処法ググるとVisual Basicの設定方法がヒットするんですが、 メモ帳とコマンドプロンプトで制作してる者としてはどう対処すべきか (取り急ぎ開発環境導入しますが、メモ帳だけでやってる方もいるらしいので) 以上2点ご教示願います >>850 どんな環境で何を見て始めたのか知らないけども、 VSならプロジェクト作成から「Windows フォーム アプリケーション」を選んで実行すれば、 空のウィンドウが表示される 初心者ならコマンドプロンプトで作らなくていいんじゃね? >>850 初心者がIDE入れないでやるのは自殺行為 自称上級者でもメモ帳ではまあまともにアプリなんて作れない IDE入れる 本を買って来て手順を踏む 5年たったらメモ帳でアプリ製作に挑戦 c#はどの場面でもメインにはなれないけど隙間隙間でやっていくだろう >>850 おそらくSystem.Windows.Forms.dllへの参照が埋め込まれていないんじゃないかと うちの環境だとIDE入ってるせいかSystem.Windows.Forms.dllへの参照は勝手に入るが コンパイルエラーコードはこの辺りに纏まっている https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-messages/CS0234 といってもVSはVSでエラーコードに関してヘルプをBingで検索しだす奇天烈仕様 azureの知識とかどうやってつければええのですん? 回答ありがとうございます 実際の対策としてVS導入はするつもりですが、 知識欲として、参照が埋め込まれていない状態をIDE介さずに解消するのは難しいのでしょうか? >>857 コンパイラスイッチで参照追加すればいいよ >>848 > javaでもphpでもrubyでも よりによってなんでそんなアホな選択肢なんだよ w > 今時Webできない開発者なんかいない Webやってるのって少数派じゃねーの。使い捨て技術者のイメージ。 >>857 ビルドも通らない人間が気にするこっちゃないよ >>861 そんなことはないでしょ。 でも、ドリーマーが多いのは確かだと思う。 なにせ20年ずっと「UIはHTMLの時代になる」って言い続けてるんだからw >>857 csc test.cs -r:System.Windows.Forms.Dll でもできない? でも正直なところ一般人の目に付く範囲のアプリってoffice除いたら 大体htmlで構成されてるものが多いんじゃないか そうじゃなくてもネットワークがないと何も始まらない WEB技術なんか追いかけてたら廃人になると思う フレームワークが使い捨てだもんな Webの特にフロントエンドはひどすぎるな。JavaScript。 生産性の低い道具を使って仕事たくさん生み出そうってことなんだろう。 俺もReactだけは勉強したけどさw 去年のQiitaアドベントみると去年はVue.jsだったのか?ww アホすぎ 業務系はレイヤー分割下手くそな初心者みたいなSE, PGばっかりだから フロントを入れ替える=全改修みたいな悲惨な事になるから、頻繁にフロントを変えるって発想ができないんだろう ここにはどうしても高い文明の壁があるから分かり合えることはない ちょっと流れてしまいましたか、貴重な意見ありがとうございます。 教えていただいたページで勘違いしていたところがスッキリしました。 WPF登場してから時間が立っているからか、古く感じてしまうのは仕方なしなのかな、と思う一報、クライアントアプリを扱う現場ではまだまだ全盛、WinFormも負けてられない勢いで使われているとおもいます。 また、一部、EFはサーバーサイドで…と言う意見もいただきましたが、クライアントでも、問題ないですよね、多分。 というか今回の質問としてはwebでないので3層は意識せず、でもUIとロジックの分離、その先の責務の分離を考えると、良い方法かな、と思いますが…じゃあEF使わないんだったら、どうしよう、constでクエリ定義してDataAdapterにぶっ込む…なんてしたくなかったですし。。。 もう少し調査は必要かもですが、ちょっとやってみたいと思います。 >ここにはどうしても高い文明の壁があるから分かり合えることはない 例えばどんなところが「高い壁」といえるんだ? アセンブラの理解を必要される世界は土人の世界と言える。 高いか低いかそれすらわからない。要するに何もわからないという壁だな。w 本人にとっては高い壁なんだから放っておいてあげなよ アセンブラの理解ってか、論理回路を理解するかどうかじゃね? ちょこっと弱電をかじれば、なんとなく理解出来ると思うけども >>875 おまえがなんとなく理解出来るんなら大体の人は正確に理解できんじゃね? アセンブラは何とか成るけど、そのまま16進数打っていた奴には敵わんかったわw いくら8ビットで命令少ないからって常人が出来るものじゃない >>876 ソフトの原理を理解していれば、 電気回路も大体理解出来るよ。 >>877 こういう話で 8086 のバイトコードを丸暗記していたという話はきいたことがないね >>880 Z80はアドレッシング・モードが簡素なので、手計算でジャンプ先の数字セットできるけど 68とか86辺りになると人の手に負えないからね ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる