ふらっと C#,C♯,C#(初心者用) Part139
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
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/ いちいち交通整理くっだらねアホか
こういう馬鹿、自分が質問者以上にスレと関係ないことをほざいてる自覚がないらしい。
そもそも馬鹿は自分を客観視できないからな 前から誰のこと言ってるのか知らんけど、この意味不明な粘着質、普通にストーカーと同じメンタルだ >>58
(.Net) Frame Work だろ FWって初めて聞いたわ。.NETと一般的な名称使わずにオレオレ略語使う奴って頭悪そう C# スレで FW 3.5 って来たら候補は一つしか無い fwと言えばファイアーウォールだな・・・
と思ったけどWikipediaによるとフレームワークの略語としても定義されてたわ
https://ja.m.wikipedia.org/wiki/FW >>57
アップデートだけじゃ無理だよ
.NET4.0入れたら4.5.2まで行けた記憶あるが VISUALSTUDIOのバージョンとC#のバージョンの対応関係ってどこかに一覧表ない? PostgreSQLからデータ抽出したいんだけど
何を使えばいいですか?
データの更新追加削除もします >>79
ADO.NET感覚でDataReaderやDataSet使いたいならそれでもいいと思うけど、今更感あるような >>80
Dapper使うならNpgsqlも必要だろ
自分で使ったこともないのに回答してるの? >>80
>>81
どっちも勉強してみます
ありがとうございます メッソッドってregionで囲むもんなん?
これアウトライン用よね? >>84
>>85
好きにしてってことか
メソッド囲んでるソース多かったから基本なのかと思ったけど
面倒だし囲まないことにする 俺はregionによる仕分け多用するけど一般的な習慣とまでは言えないね
でも、単純にプロパティ、メソッド、イベント(OnXxxx)、コンストラクタに分類するだけでも
少なくとも視覚的な見やすさはだいぶ違うと思うよ
MSDNライブラリのクラスメンバー一覧がそういう分類じゃなく単純にアルファベット順だったら
どうか想像すりゃ分かると思うけど 複数のメソッドをregionで囲むはまだ許せるが、くそ長いメソッドの一部をregionで囲って短く見せるのは許せない >くそ長いメソッドの一部をregionで囲って短く見せる
海外サイトでサンプル漁ってると時々見かけるな まあアウトラインってスコープ単位で線引されるからね
regionは昔の機能と思っていいよ メソッドはregionで囲まなくても普通に畳めるよww >>92
畳めるけどメソッドをregionで囲ってるソースみること結構あるわ メソッド単位で囲ってるのは俺も謎だと思ってた
昔は普通にたたむのできなくてその名残とかなのかもしかして普通にたためるの知らないのか IEnumerable、IDisposable、IEquatableみたいな定型インターフェイスの実装は邪魔なんでregionで括ってるわ
あとToStringやらGetHashCodeのオーバーライドなんかも >>97
.NET Frameworkのライブラリと同じように作らなきゃいけないと勘違いしてた頃は俺もそれやってた
アプリと不特定多数向けのライブラリは作り方が違ってていい、アプリはなるべく絞り込んで作るのがよい、
ということを理解してからは無駄なコードが減って必要なくなった 不特定多数向けのライブラリを作ってるのかもしれないだろ IDisposableはusing使うために必須だからなあ HttpClientみたいにsession繋ぎっぱなしが推奨されてるのにusing使う奴 >>101
なんでそのルールをセッション繋ぎっぱなしが推奨されないものにまで適用しなきゃいけないの? ここで聞くことでもないんだけど適当に意見くだせえ
仮に外部設計書・内部設計書・詳細設計書が必要として、
詳細設計書は別ファイルで作成するよりxmlドキュメントコメント使って生成したxmlファイル使った方がよっぽどいいよね? >>103
ドキュメントコメントは内部設計だろ
詳細設計というのはソースコードを日本語に逐語翻訳したものであり、一般にはコーディングシートと同じもの
下請けの一番使えない奴に押し付けるのが一番 最初の設計がおかしかったからこんなことになった
using使えるような新しいライブラリを出してこないMSが悪い
pythonだったらpython的でないと言う理由で新しいライブラリが出てくる >>101
ファイルの利用が終わったのにすぐにファイルハンドルを解放しないとか不便でしょうが >>104
ドキュメントコメントは内部設計なの?
サイトによって言ってること違って混乱してる
内部設計書=詳細設計書と書いてるところもあれば、
内部設計書=複数の処理の流れ、詳細設計書=ドキュメントコメントってところもある
自然言語でコード書いた奴は見当違いで本来必要の無い何かって認識だった。会社と人によって違うのかな >>108
詳細設計はCOBOL時代の名残りだ
パンチカードや80x24文字の画面でコーディングしてた頃はソースコードは純粋なアウトプットであり、
ソース上で試行錯誤したりソース眺めながらコミュニケーションしたりするなんていう発想は無かったの
プログラミングはタイピングの前に完了していなければならず、詳細設計を作成することこそが今でいうコーディング工程そのものだったんだよ
本来全く必要のないもの、でまさに正しいんだよ >>106
HttpClientFactoryも知らないおじいちゃんこんにちは >>103
答えはNO
内部・詳細設計書はゴミのように不要どころか持ってると邪魔なものだけど客は金を出してくれる
ビジネスでやる以上金になるほうを選ぶのが当然 質問者すらそう言ってるが
言及したがりのバカが沸いたからしゃーない しかも最初の疑問点からずれた話題だけを掘り下げるという意味不明な状態 Win32API関数でのエラー処理について質問です
var DllFilePath = "hogehoge.dll";
handle = LoadLibrary(DllFilePath);
if (handle == IntPtr.Zero)
{
throw new System.ComponentModel.Win32Exception();
}
↑のコードで例外をthrowするときに例外のMessageにDllFilePathの値を追加したいのですが
throw new System.ComponentModel.Win32Exception(DllFilePath)
とすると本来のエラーメッセージが上書きされてしまいます。
var DllFilePath = "hogehoge.dll";
try
{
handle = LoadLibrary(DllFilePath);
if (handle == IntPtr.Zero)
{
throw new System.ComponentModel.Win32Exception();
}
}
catch(System.ComponentModel.Win32Exception e)
{
throw new System.ComponentModel.Win32Exception($"{e.Message} \"{DllFileName}\"", e);
}
こうすれば期待通りの内容にできるのですがAPI呼び出しの度に例外処理を書くのは
コードが冗長になってしまうし何より面倒なのでうまいこと簡単に書けないか悩んでいます。
何かいい方法は無いですかね? >>115
Win32Exceptionを継承して使う >>115
public class LoadLibraryFailedException : Win32Exception
{
public LoadLibraryFailedException (string path)
{ DllPath = path; }
public string DllPath {get; private set; }
...
} Messageに情報を足すことばかりが頭にあって
情報を別のプロパティに持たせる発想がなかった…
こっちのほうがcatchする側で融通が利かせやすいし
クラスやプロパティの名前を調整すればLoadLibraryに限らず
他のAPI呼び出しにも汎用的に使えそうでいいですね
この方法で検討してみます。ありがとうございました すんません初歩駅な質問なんですが
フォームアプリのコントロールに
ボリュームやスライダーのような可変データコントロールは無いのでしょうか?
似たのはNumericUpDownがありますが・・・
これの画像を差し替えてボリューム風にしろってことですか? >>120
おお!「コモンコントロール」にも他カテゴリにも無いコントロールがあったのか!
完全に見落としてました
ところでこれの画像を差し替えて丸型回転ノブにすることはできるんでしょうか?
まだ勉強不足でよくわかってないのですが
Imageプロパティとか無いからできないかな? 初心者に回転ノブの実装は難しいと思う
ってか使いにくいだろ >>121
画像だけで済まないでしょそれ
そんな形で回転するコントロールは無いので一から自作しないと
>>123
マウスホイール部分で動かすのならともかくドラッグで操作するものとか考えただけで頭痛くなる volatile キーワードの役割がどうしても理解できないので教えてください。
自分の考えでは、以下のようなプログラムを最適化ありでコンパイルして実行すると
while (loop) ; のループから抜け出すことができないから
volatile キーワードが役に立つのかと思ったのですが、
残念ながら(?)実際に試すと普通にループを抜け出せてしまいました。
class Program
{
static bool loop = true;
static void Main(string[] args)
{
new Thread(() =>
{
Thread.Sleep(1000);
loop = false;
}).Start();
while (loop) ;
Console.WriteLine("End");
}
}
そもそも、volatile がある場合とない場合で動作が変わるコードを
ただの1つも作り出すことができていない状態なので、
何か volatile の役割を示すコードの例を示していただけると嬉しいです。
よろしくお願いします。 >>122-124
むむむ画像の差し替えだけじゃ回転ノブは難しいのか!
C#というのは在り物のコントロールをそのまま使って工夫するものなんですかね? マジレスするとメッセージ捕まえて
自力で描画すれば可能なんだけど
労力に見会わないのでお勧めしない
webやWPF, UWPならグラ弄るの簡単 たぶん音量調整とかしたいんだろうけど
そんなui見かけないのは使いづらいからでは? regionの適切な使い方って結局どうすんのがいいんだ?
独学だし人のあんま見たことないからよくわからん 折れ線グラフとか棒グラフとか
3Dで立体的に表示できる機能なんかない?
開いたら開始地点から現在の値のトコまで棒が伸びていくアニメーションとか
リッチ感だしたいんだけど GDI+よりWPFが簡単とはまったく思わんなあw
>>129
XPの時代はそういうUIが結構あった。
>>126
ボリュームの位置(値)を、例えば小さな丸で示す実装なら超簡単でしょう。 自分の作ったプログラムをウェブで公開したいのですが、完全に独学のため、
リリース用のビルドをするにあたっての注意点がよくわかりません。
このウェブサイトにあるように、単純にリリースビルドすればそれでいいのでしょうか?
第5回 Windowsアプリケーションのデバッグ&リリース (5/5):連載簡単!Visual Studio .NET入門 - @IT
http://www.atmarkit.co.jp/ait/articles/0410/13/news100_5.html
また、リリースビルドした場合、デバッグ不足で予期しないエラーが発生した場合、何行目にエラーがあるとかそういう表示って出てこなくなるのですか? >>132
回転はどうするのwってのは置いておくとして超簡単って書くのなら方法示したほうがいいと思う
>>133
公開するのならビルドした.Netのバージョンを必ず明記すること
.Net以外の外部DLL等参照している場合はそれも書くこと
>何行目にエラーがあるとかそういう表示って出てこなくなるのですか?
はい >>133
pdbファイルも一緒に配布すればrelease版でも例外発生箇所を表示できる >>136
リリースビルド時のフルパスがPDBに含まれないようにするのってどうやるんだっけ? >>137
[ビルド]-[出力]-[詳細設定]-[デバッグ情報]を「なし」に設定 フォーマット指定の方法なんだけど
("id:{0}",変数)みたい0とかのインデックス指定なしに
記載する方法ってなかったっけ?
こんな感じ
("id:{}",変数)
あったような気がするのだが見つからない 計算処理クラスは自動テスト実現のため一時変数以外のインスタンスを持たせない
という方針を聞いたんですけどC#に例えるとどういう事ですか?
独り派遣で聞く人もおらず困っています なぜその方針を作った側の人に直接聞かないの
理解せずに間違ったことやったら最終的に叱られるのは君じゃないの?w
こういう人が2chで「コミュニケーションスキルガー」とか被害妄想全開で吠えてるんだろうなあ 状態を持たせずに純粋関数にした方が
バグが減って保守やテストがしやすいってことじゃろ
Mathクラスみたいに メソッドを全部staticにしたらいいんじゃね
もちろんstaticな変数は持たない
utilクラスみたいなもんだと思えば それやるならstatic classってのがc#にはあったような メソッドやクラスをstaticにしたところで他のクラスのインスタンスへの依存は防げないだろ
計算処理クラスなんてものが生み出されるようなレベルの現場だと、
ヘタにstatic強制なんかしたらstaticフィールドに状態持たせるバカが増えて余計に酷い状況になりそう >>143
それ書いた人はもう居ないです
いつもイライラして椅子蹴ってくる正社員リーダーとは恐怖でこちらから話せません Utilクラスってゴミ箱になりがちだから嫌いだわ。
計算処理クラスはなんとなく気持ちはわかるが。
delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの?
テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。 >>149
処理をクラスにするって古い考えなのでしょうか
自分はDDD的な知識のクラスを構成するクラスも作りますが、そんなものは作らんのが流行りなのかと気になります >>134
>>136
ありがとうございます。やってみます >>150
マジで底辺のリーダーってこんなんがほとんどなの?こええ staticなナントカUtilクラスはJavaドカが好むよねー
staticなのに内部でインフラ異存しまくっててキレそうになるよ 失礼します。
ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか? ■ このスレッドは過去ログ倉庫に格納されています