X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 8b75-uWnk)
垢版 |
2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
「どんなにくだらない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
0781デフォルトの名無しさん (ワンミングク MM0e-2hJC)
垢版 |
2018/02/25(日) 11:05:57.21ID:Ydc/tL+DM
>>779
関係ないクラスを一緒くたに管理しないほうがいいってこと
マシン設定ならマシン設定
データベース設定ならデータベース設定
権限管理なら権限管理
アイコン管理ならアイコン管理
プログラムは1つ1つ関心ごとに分けて後で組み合わせるのが基本
設定項目も一緒くたにしないで個別に設定クラスを作る
0782デフォルトの名無しさん (ワッチョイ 709d-saxG)
垢版 |
2018/02/25(日) 11:08:26.61ID:D3C+bdq60
それはインナークラスとどう関係あるって?
0784デフォルトの名無しさん (ワッチョイ a49f-QP7I)
垢版 |
2018/02/25(日) 11:14:15.87ID:JzRpHb2B0
>>779
Programのデフォルトの公開範囲がprivateだから

って思ったんだけどクラスって省略されるとinternalなんだね
じゃあ別にやってもいいかな
ただ、各フォームから起動元であるprogramクラスにアクセスするのは違和感があるからインナークラスは推奨しない
よく言われるグローバル変数にせず、フォームの起動時に引数で渡せばいいと同じレベルの話だから余り気にしなくていいかも
0785デフォルトの名無しさん (ワッチョイ 709d-saxG)
垢版 |
2018/02/25(日) 11:24:18.30ID:D3C+bdq60
>普通はVSのフォームデザインでプロパティからApplicationSettingにてPropertyBindingを行う
これはどういう意味や?
バインディングってのはデータソースがコロコロ変わる時に便利なだけだろ。何でグローバル変数みたいな
変わらんものに「普通は、、、、使う」なんて言いきれるんだ。
意味わからん。
0786デフォルトの名無しさん (ワッチョイ 509f-z29z)
垢版 |
2018/02/25(日) 11:43:52.16ID:/V/K592r0
グローバル変数(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);
0787デフォルトの名無しさん (ドコグロ MM85-o9L9)
垢版 |
2018/02/25(日) 12:40:23.67ID:wniuxD5kM
設定値と処理を密にすると
設定値集Aと設定値集Bとか異なる設定で動かさなきゃいけないときにウザいよ

それを消そうとするとグローバル変数は消えるけど
仕様でそういったもんが別にいいなら問題は起きない
環境変数みたいにインストール時に固定なんだよ的な
0788デフォルトの名無しさん (ワッチョイ 709d-saxG)
垢版 |
2018/02/25(日) 14:52:23.69ID:D3C+bdq60
>グローバル変数(static変数)なんて難しすぎる機能は初心者には扱いきれないでしょう

何を根拠に難し過ぎるというのか意味不明だ。
 複雑だからか? どう複雑なんだ? 複雑なわけない。w
 他に難しい理由があるのか? 誤動作するからか? するわけない。w

 ちゃんと理由を上げて説明してみろよ。
0789デフォルトの名無しさん (アウアウカー Sa0a-msg2)
垢版 |
2018/02/25(日) 19:09:25.59ID:xxKEYzcHa
>>758-760>>762
ありがとうございます
参考になりました。頂いた内容で再検討してみます
0791デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/25(日) 21:04:14.02ID:ky9/2g4Z0
ググったら
selecteditem.tostring()でやってるのが多いけどそれだとどうなの?
0792デフォルトの名無しさん (ワッチョイ 539f-CyJp)
垢版 |
2018/02/25(日) 21:29:08.12ID:vwrCxs9l0
>>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〜で手入力した値を取得したいのですがうまくいきません。
0805ヴぁr (アウアウウー Sa08-MTlB)
垢版 |
2018/02/25(日) 23:28:03.64ID:AIuTVnPta
<ComboBox x:Name="cb" IsEditable="True" TextBoxBase.TextChanged="cb_TextChanged" />

private void cb_TextChanged(object sender, TextChangedEventArgs e)
{
var text = cb.Text;
}
0825デフォルトの名無しさん (アウアウエー Sa6a-Xk4Z)
垢版 |
2018/02/26(月) 20:41:26.85ID:Vig1K9Wwa
関係ないよw
メディアの問題というよりファイルシステムの問題

シーケンシャルにしかアクセスできないからシークが遅いとか、そもそも追記ができないとかいう話なら分かるが、
追記可能なのに書込み速度がファイルのサイズに影響するファイルシステムってちょっと思いつかん
0826デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/26(月) 21:24:17.61ID:ogwj8qdY0
屁理屈アスペ
0829デフォルトの名無しさん (ワッチョイ 24c3-POFq)
垢版 |
2018/02/26(月) 22:29:50.26ID:gUsCTQbp0
業務アプリばっかりやってきて最近のトレンドに全くついていけてない老害に教えてやってほしいのですが、
●やりたいこと
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程度までの業務コーディング知識は
あるつもりなのですが、なかなか最近の技術、名称についていけておらず。。

最近のトレンドに乗りつつ、知識をつけつつ開発したいと思っています。
ちなみにこのアプリは業務使用ではないのです
0831デフォルトの名無しさん (アウアウウー Sa08-x7KF)
垢版 |
2018/02/26(月) 22:54:42.80ID:WVKxaYLHa
>>829
まずはこの辺の誤解を
・WPFは最近のトレンドなどではなく、とっくの昔に死んだ技術である
・EFはサーバー用のオーバーヘッドが極めて大きいフレームワークであり、デスクトップアプリで使うものではない
0833デフォルトの名無しさん (ブーイモ MM5e-x7KF)
垢版 |
2018/02/26(月) 22:59:10.38ID:DUs1D+akM
一番大きなギャップは、今の.NET界は完全にWebに傾倒していて、コミュニティの話題や新しい技術はほぼ全てWebであるということだな
デスクトップアプリなんか完全に時間止まってるから.NET 3.5の知識だけで全く問題ないよ
0838デフォルトの名無しさん (ワッチョイ 0e23-x4Or)
垢版 |
2018/02/27(火) 02:10:24.09ID:99t2/tIf0
WPFが生まれた時からずっと疑問なんだが
これって覚えたほうがいい技術なのか?
すぐ主流になるだろうからそれから乗り換えようと思ってもう何年もたつんだが
0843デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/27(火) 08:05:04.96ID:zlwrDvPF0
個人的にはWinFormsのデザインのほうがすき
0845デフォルトの名無しさん (アウアウカー Sa0a-msg2)
垢版 |
2018/02/27(火) 08:16:40.64ID:k/YAY/h1a
xmlでシリアライズするときに、配列のタグに番号を付与していくにはどうしたらいいのでしょうか
0847デフォルトの名無しさん (ブーイモ MM5e-x7KF)
垢版 |
2018/02/27(火) 08:38:03.68ID:7wWsDoA+M
>>844
なんか勘違いしてるみたいだが、PWAはWebアプリだぞ
今時ガワで何でもやるアプリなんてほとんど無くて、重要なのはWeb越しにある裏側の仕組みだ
つまり、PWAサポートするからバックエンドをVSやAzureで作ってね、ということ
そして、MSはC#を最重要なWebバックエンド開発言語として位置付けている
今更デスクトップアプリなどという時代遅れな技術を使いたくない、Web技術で全部作らせろ、というニーズは.NET開発者からも多いんだぞ?
今時C#=Winデスクトップアプリ向け、なんて言ってるのは10年遅れ
0849デフォルトの名無しさん (アウアウウー Sa08-x7KF)
垢版 |
2018/02/27(火) 11:40:41.47ID:xtZuYio6a
>>848
今時Webできない開発者なんかいない(そうでない連中はどうせ新しい物買わないし先細りだし放っといてもMSから逃げられないから餌をやる必要がない)
MSから見ればそこに拘る意味がなくなってるんだよ
今の.NETプラットフォームはAzure含めて純粋にWebプラットフォームとしての使いやすさで勝負していて、
十分に競争力のあるものになってるし実際大成功してるよ
0850デフォルトの名無しさん (ワッチョイ 26eb-g0eH)
垢版 |
2018/02/27(火) 11:49:37.57ID:/SsV5BVS0
見様見真似で勉強始めたばかりの初心者です
以下の記述で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点ご教示願います
0851デフォルトの名無しさん (ワッチョイ f0ea-je3A)
垢版 |
2018/02/27(火) 11:58:10.40ID:p2sOgdSs0
>>850
どんな環境で何を見て始めたのか知らないけども、
VSならプロジェクト作成から「Windows フォーム アプリケーション」を選んで実行すれば、
空のウィンドウが表示される
初心者ならコマンドプロンプトで作らなくていいんじゃね?
0855デフォルトの名無しさん (ワッチョイ e206-MTlB)
垢版 |
2018/02/27(火) 12:47:38.51ID:SDSkuy0K0
>>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で検索しだす奇天烈仕様
0857850 (ワッチョイ 26eb-g0eH)
垢版 |
2018/02/27(火) 13:36:31.89ID:/SsV5BVS0
回答ありがとうございます
実際の対策としてVS導入はするつもりですが、

知識欲として、参照が埋め込まれていない状態をIDE介さずに解消するのは難しいのでしょうか?
0859デフォルトの名無しさん (ワッチョイ e206-MTlB)
垢版 |
2018/02/27(火) 13:56:12.87ID:SDSkuy0K0
>>857
URLの/reference (メタデータのインポート)は読んだ?より具体的なら↓のとか

ソース ファイルが格納されているディレクトリで次のコマンドを実行します
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/controls/how-to-develop-a-simple-windows-forms-control

https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/how-to-create-a-windows-forms-application-from-the-command-line
こちらだとcscにはライブラリの指定がないね、IDEというよりSDKやTargeting Packの設定なのかもしれん
0864デフォルトの名無しさん (ワッチョイ 2175-42by)
垢版 |
2018/02/27(火) 20:08:50.02ID:zlwrDvPF0
>>857
csc test.cs -r:System.Windows.Forms.Dll
でもできない?
0865デフォルトの名無しさん (アウアウウー Sa08-MTlB)
垢版 |
2018/02/27(火) 20:14:25.43ID:hIuQGxZha
でも正直なところ一般人の目に付く範囲のアプリってoffice除いたら
大体htmlで構成されてるものが多いんじゃないか
そうじゃなくてもネットワークがないと何も始まらない
0867デフォルトの名無しさん (ワッチョイ f41e-a/z7)
垢版 |
2018/02/27(火) 20:44:37.33ID:Ee9DX7nT0
Webの特にフロントエンドはひどすぎるな。JavaScript。
生産性の低い道具を使って仕事たくさん生み出そうってことなんだろう。
俺もReactだけは勉強したけどさw
去年のQiitaアドベントみると去年はVue.jsだったのか?ww
アホすぎ
0868デフォルトの名無しさん (ワッチョイ 2175-xOks)
垢版 |
2018/02/27(火) 20:58:24.68ID:zlwrDvPF0
スレチ
0869デフォルトの名無しさん (ワンミングク MM3e-2hJC)
垢版 |
2018/02/27(火) 21:09:13.36ID:IHLOiVm0M
業務系はレイヤー分割下手くそな初心者みたいなSE, PGばっかりだから
フロントを入れ替える=全改修みたいな悲惨な事になるから、頻繁にフロントを変えるって発想ができないんだろう
ここにはどうしても高い文明の壁があるから分かり合えることはない
0870829 (ワッチョイ 24c3-4sh6)
垢版 |
2018/02/28(水) 00:45:23.33ID:ZfoI/UP10
ちょっと流れてしまいましたか、貴重な意見ありがとうございます。
教えていただいたページで勘違いしていたところがスッキリしました。

WPF登場してから時間が立っているからか、古く感じてしまうのは仕方なしなのかな、と思う一報、クライアントアプリを扱う現場ではまだまだ全盛、WinFormも負けてられない勢いで使われているとおもいます。

また、一部、EFはサーバーサイドで…と言う意見もいただきましたが、クライアントでも、問題ないですよね、多分。
というか今回の質問としてはwebでないので3層は意識せず、でもUIとロジックの分離、その先の責務の分離を考えると、良い方法かな、と思いますが…じゃあEF使わないんだったら、どうしよう、constでクエリ定義してDataAdapterにぶっ込む…なんてしたくなかったですし。。。

もう少し調査は必要かもですが、ちょっとやってみたいと思います。
0871デフォルトの名無しさん (ワッチョイ 709d-saxG)
垢版 |
2018/02/28(水) 03:45:22.69ID:Tpz3pZ6h0
>ここにはどうしても高い文明の壁があるから分かり合えることはない
例えばどんなところが「高い壁」といえるんだ?
0873デフォルトの名無しさん (ワッチョイ 709d-saxG)
垢版 |
2018/02/28(水) 08:03:55.13ID:Tpz3pZ6h0
高いか低いかそれすらわからない。要するに何もわからないという壁だな。w
0876デフォルトの名無しさん (ワッチョイ 9c03-07Zo)
垢版 |
2018/02/28(水) 22:27:40.29ID:6WnrRHIY0
>>875
おまえがなんとなく理解出来るんなら大体の人は正確に理解できんじゃね?
■ このスレッドは過去ログ倉庫に格納されています

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