ふらっと C#,C♯,C#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
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: checked:vvvvv:1000:512:----: EXT was configured 補足
メソッドから参照されてるオブジェクトはデリゲートが生きてる限りはGCされないので、
GC対策としてはデリゲートだけフィールドで保持しとけば十分 >>512
ありがとうございます!
解決しました。変数をキャプチャしてるラムダ式でもOKなんですね
これって実行時にコードを生成してるんでしょうか? visualstudio2015でifの条件式の部分が
if(a>1&&
b>1&&
c>1&&
d>1)
となっているのを
if(a>1&&
b>1&&
c>1&&
d>1)
ときれいに揃える方法はないでしょうか?
ctrl+k,ctrl+dではこの部分だけきれいにならず困っています if(a>1&&
b>1&&
c>1&&
d>1)
となっているのを
if(a>1&&
__b>1&&
__c>1&&
__d>1)
_はスペースです >>514
ない
そんな非生産的なコーディング規約は今すぐ撤廃しなさい 条件式がたくさんある場合はどうすれば見やすく書けるのでしょう…
横に伸びると見にくくて 自分にあったフォーマッタを
自分で開発すればいいんじゃないの?
出来合いで我慢できないならそれしかないでしょ
幸いにもあなたはプログラマーだ
頑張れ if(a>1&&
b>1&&
c>1&&
d>1)
となっているのを
if(a>1&&
__b>1&&
__c>1&&
__d>1)
_はスペースです if(a>1&&
b>1&&
c>1&&
d>1)
となっているのを
if(a>1&&
__b>1&&
__c>1&&
__d>1)
_はスペースです >>515
その前に書くなら
if(a>1
&&b>1
&&c>1
&&d>1)
って揃えるべきじゃね?
そういう視点で見るとどうよ? 522
それでもいいんですが
____if(a>1
&&b>1
&&c>1
____&&d>1)
貼り付け繰り返してるうちにこうなっちゃったりしてるんですよね 俺だったらIsXXXみたいなboolを返すメソッドに分けちゃう。 おれは諦めた。もう好きにフォーマットしてくれたまえ すっぱい葡萄
手に入れたくてたまらないのに、人・物・地位・階級など、努力しても手が届かない対象がある場合、その対象を「価値がない・低級で自分にふさわしくない」ものとみてあきらめ、心の平安を得る。
フロイトの心理学では防衛機制・合理化の例とする。
また、英語圏で「Sour Grapes」は「負け惜しみ」を意味する熟語である。
wikiより >>515
if(
a>1&&
b>1&&
c>1&&
d>1
)
じゃダメ? >>530
俺的には条件が長くなったときに
&&が後ろに隠れるのは納得行かないぜ
横が揃うなんて些細な問題だ >>531
個人的には
if(
1 < a
&& 1 < b
&& 1 < c
&& 1 < d
)
って書くけど>>515に合わせてあるだけ もう書いてる人いるけど、こういうのは結局自分の(ほとんどの場合はくだらない)
こだわりの方を修正する方が早い。
っていうか頭を揃えたら見やすいって感覚はちょっと理解不能
間違いなくただの思い込みだと断言できる もうbool返すメソッド作れよ
bool AllUnderOne(a,b,c,d) んなことしなくてもifに長い式書くのが嫌なら適当な使い捨ての変数を導入するだけでしょ 結局staticって何が有用でどういう時に使うものなの?
解説読んでもこれが何に活かされるのか分からない… おまえMathクラス使わんの?string.Joinも? >>523
Code alignmentって拡張機能があるから使ってみれば? ちなみにstaticな変数の話?
staticなメソッドの話? それはスタティックおじさん誕生じゃないのかと突っ込む ここだかどうだかわすれたけど
staticの質問をしてた人が過去にいた
そしてなぜかCの話になったりしていちゃもんつけるだけつけて帰って行った
同じ人かもしれない string型の文字列を配列で持ちたいときはlistboxに
文字列をコピーしていく方法よりカッコいい方法ある? stringの文字列を配列で持ちたいというのはstring[]ってこと?
listboxに文字列をコピーしていくとは?もうちょっと詳しく。
カッコいい方法というのはC#のコードの書き方という意味で? SQLを外部ファイルに出したいのですが、そういうライブラリやフレームワークってあるでしょうか
それとも皆さんオレオレフレームワークを作っているのでしょうか オレオレフレームワークもみんなが使えばワレワレフレームワークになる
そーゆーこと みんなで使える優れたフレームワークはオレオレフレームワークと呼ばれない >>549
何について言ってるのか理解しづらいけど
SQLを外に出すのは悪いことなのでそういうライブラリやフレームワークはない
SQLってただの文字列でしかなくてコンパイル時に間違いがわからない
それを埋め込んでテストを繰り返すことでバグの可能性を限りなく低くしてる
でもORMなどを使っても必ずバグを洗い出せるわけじゃない よく考えると形だけ外出ししてもデータ取得後のソースが
SQLによって変わるからあんまり意味ないっつか見にくくなるだけだな 質問が下手ですみません
javaのibatisのようなxmlでクエリを外部ファイルに置くようなフレームワークはC♯にあるのでしょうかという質問でした
自分は文字列でコード上に直接クエリを書いており、悪手をやっているのではと不安になり質問しました
ご教示よろしくお願いします >>558
iBatisって相当昔だと思うけど…C#でもiBatis(MyBatis)は使える
絶対やめた方がいいけど 個人的にクエリは定数で宣言して、クラスにまとめる感じで書く。
リフレクション使ってクエリ文字列を引っ張れば管理資料もチョチョイのチョイやで。 むしろクエリを外部ファイルに書き出すのは古いのですね
参考になります すみません。この場を借りて質問させていただきます。
C#初心者なのですが、wpfで動画再生アプリを作っています。コピペメインです。
MediaElementを使って動画のコントロールはほぼ実装できたのですが、
動画のフルスクリーンからの復帰の仕方が良くわかりません。
(元の画面にうまく戻せません)
フルスクリーンにするときは、こちらを使っています。
layoutRoot.Children.Remove(myMediaElement);
this.Content = myMediaElement;
this.WindowStyle = WindowStyle.None;
this.WindowState = WindowState.Maximized;
戻すときは以下のようにしてみましたが、
this.Content = layoutRoot;
layoutRoot.Children.Add(myMediaElement);
this.WindowStyle = WindowStyle.SingleBorderWindow;
this.WindowState = WindowState.Normal;
System.ArgumentException: '新しい親 Visual に関連付ける前に、指定された子と現在の親 Visual との接続を切断する必要があります。'
と怒られますw 親子の縁はどのように切ったら良いのでしょうか?
よろしくお願いいたします。 >>564
上と下を見比べて対応してないものをまず見ろ
それにしてもひどいやり方だ private void savedata()
{
string name = "aaa.txt";
system.IO.StreamWriter sw;
try
{
sw = new IO.StreamWriter(name, false, System.Text.Encoding.GetEncoding("shift_jis"));
sw.WriteLine("aaaa");
}
catch (Exception ex)
{
MsgBox("Savedata error:" + ex.Message);
}
finally
{
sw.Close();
}
}
Newでエラーした場合にはSw.Closeすると落ちるが、何とかならないものだろうか? if(sw != null) sw.Close();
じゃダメなのかしらん? >>569
Dispose()とかでもそうするのが基本だと思うが
>>568
Fileが無い場合やサイズが0とかの対応全く考えてないのも問題だと思う あっそうか Nullで検出できたのか。ありがと。Useingってのもあるんだね。
開発モードではエラーしないのに、Setupファイルでインストールすると、書き込み禁止がかかっているような
エラーになるんだがなにが原因だろ。
System.UnauthorizedAccessException: パス 'C:\Program Files (x86)\test14\あああああ.ini' へのアクセスが拒否されました。 >>572
WindowsフォルダやProgramFilesフォルダに書き込むには管理者権限が必要 フォームのデザイナが以下のエラーを吐くのですがどうすればいいですか。
"***.dll"を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E)
プロジェクトは以下の4つです。
MainForm(C#)
MainView(C#) (MainFormの中でNewされる。DLLsを利用する。)
DLLs(C#) (DLLImportする。)
Drawer(C++) (DLLExportする。dllファイルはビルド後に実行ファイルがある場所にコピーされる。)
コールスタックでは、MainViewのDLLsを使用しているところでエラーがでており、
それをコメントアウトすると、デザイナが表示されます。 >WindowsフォルダやProgramFilesフォルダに書き込むには管理者権限が必要
ありがとう。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
をいれたら動き出した。しかし立ち上げ時に毎回「この不明なアプリが実行することを許可しますか?」って
Windowsの確認画面がでるんだが、なんとかならないのでしょうか? >>576
ユーザーコードで対処するのは無理でしょう。
そのためのUACなんだし。
リスク覚悟でUACを無効にするしか
Vista出たのも10年前だし、UACが何だか知らない人も多くなってるのかな Program filesにインストールするようなアプリで今時.iniとかちょっと… >>576
コードサイニング証明書取得して、プログラムに署名。 管理者権限でいつも立ち上げるようにすると確かにアクセスできるようになった。
しかしインストール先 パス を'C:\Program Files (x86)、これをやめれば管理者権限で立ち上げる必要はないのでは? >コードサイニング証明書取得して、プログラムに署名。
最高だ。これはいい。
とおもったら金がかかるのか? 残念。 >>582
普通はアプリケーションフォルダにデータを置きます
てか、設定ファイルは.iniを使わなくなって10年以上経ちます
[C# 設定]で、普通の設定ファイルの使い方調べた方がいい 訂正アプリケーションデータフォルダ(AppDataってやつね) 最近流行らないと思うけど、バイナリと同じ場所に設定ファイルを置くのは
バイナリ自体をUSBメモリに入れて持ち歩くような特殊な用途ぐらいだよね
iniファイルでも悪くないと個人的には思うけど、せっかく便利なシリアライザがいろいろあるのに
わざわざ機能的に劣るiniファイルを使う意味はないわなあ
読み書きするコードも自分で書かなきゃならんし AppDataってVsのSetupプロジェクトでは作ってくれないですね。Apllicationフォルダーに設定用のデータも入れています。
「iniをつかわない」ってのがあまり意味がわかりませんがいま使っているのは単なるテキストファイルです。
(*.iniという名前にしていますが、)StreemWriterで書いています。XMLに落とすのが普通なのでしょうか?
しかし単に改行だけのファイルで十分なのでXMLにはしていません。
XMLは設定ファイルとしてはわかり難いですし無駄が多いように思います。
それにエディターで気楽に追加ができないです。 >niファイルでも悪くないと個人的には思うけど、せっかく便利なシリアライザがいろいろあるのに
>わざわざ機能的に劣るiniファイルを使う意味はないわなあ
慣れなんですかね。どうも直観的にわかり難いように思います。だからJsonとかを使う人も多いんではないですか? ”設定”, 20,
とかをStreemReaderで読みこむと何で ””設定””になるんですかね。ストリングにするためにわざわざ「”」をNULLにReplaceしています。
なんかいい方法はないですかね。 >>586
俺はええと思うな
XMLは編集するツールがない
プログラマでない人間がぶっ壊したら
自分で直すのは至難の技だ >VisualStudioの機能だが
・AppDataフォルダ:このフォルダは「C:\Users\ユーザー名\AppData」にあります。ほとんどのプログラムの設定ファイル
はここに置かれています(サブフォルダ「Roaming」の中)。プログラム名か開発企業名のフォルダの中に、設定ファイルや
関連データが保存されていますので、フォルダごとバックアップしておきましょう。
こういうもののようですね。だからSetupプロジェクトにはここに入れる設定データのフォルダーがあってしかるべきですがない?みたいですね。 バイナリと同じフォルダにiniファイルだと…
アプリケーション1つにつき設定が一個しかないのでユーザーが複数いると困る
たとえば年賀状ソフトで差出人が全てのユーザーで一つしか設定できない 今時複数ユーザーなんか考慮しなくていいだろ
健全なファミリーがお前の作ったアプリを使うとでも? すまんが、列挙型って関数の引数の型に指定することはできないの?
enum A {B, C ,D};
void E(A a){}//ここでエラー
これを書く事ができれば、エディタのアシストが効きまくってミスが減る気がするんだけど・・・・・ できるはず
エラーメッセージはどのようなものですか? 関数内に書いててpublicメソッドにしてるんだろうな クラス内に書いててpublicメソッドの引数にしてるの間違い
それかenumをpublicにしてないか Windows Form のコントロールたちって、ここ10年くらい全くもって変わり映えしてない気がするんだけど
もう改善する気がないのかねぇ
グレープシティ壊滅させるまでやらずとも
テキストボックスの縦位置とか枠線スタイルとか複数列コンボとか、そのくらい対応してくれてもいいと思うんだけど >>602
UWPに注力してる以上まずやらんだろ。 XPに対応したVS2005の時代から変わってないのに何をいまさら感w >>603
Windows 10 Mobile が事実上終了したんだからUWPに注力する必要ないよね Chartがその後で増えたよ
いやまあBCLに入っていなかっただけで前からあった奴だけど >>605
GoogleやAppleのまねしたいみたいだから、あがき続けるんじゃないか。 WinFormsって長いこと触ってないが
今でも線引くのにLabel使うとかアホなことしてるの? 底辺の人は底辺の環境で不思議なことをしてる
普通の人は普通の環境で普通なことをしてる >>608-609
ラベルでヘアライン引くのはよくあるしアホでも何でもない MSがUWPの宣伝しているのを見る度に
ユニバーサルプラットフォームっていうけど
お宅の会社ってPC以外のプラットフォーム持ってましたっけ?
って煽りたくなる ■ このスレッドは過去ログ倉庫に格納されています