ふらっと 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 $"{12345,8} 6.0になってからString.Formatを使わなくなったな >>734
残念。VS2013ではそのスタイルは動かんな。 最新のVSって毎週バージョンが上がってて、アップデートしたら突然ビルドが通らなくなったりとか時々あるんだよね
自社開発でパパっと対応できる体制の開発が前提になってて、もうジャパニーズドカタには手を出せない代物 質問者が何言ってるのか俺にはさっぱりわからんけどみんなよく分かるなw 俺も正しい意味はわからないけど憶測で判断してる
文章も書けないくらい幼稚だけど偉そうなレスしてるとだけわかる >>728
これが特に意味不明だけど考えてわかるレベル
>>735
これが偉そう List<string> a = new List<string> {
"x3" ,
"x4" ,
"x5" ,
"x6" ,
"x7" ,
"x8" ,
};
foreach (string el in a)
{
combox1.Items.Add(el);
}
combox1の初期化ってこんな方法しかないのか? 直接は初期化できんのか? >>236
ちゃうちゃう、$” { valuえ} ”の記述はVs2017しかサポートしとらん。 int w = (int)((double)pic.Width / (double)(1 + x ) / 1.3);
doubleとintを混在するときにdoubleに自動的に型推論する機構ってないの?
いちいちキャストするのはメンドクサイよな。 >>748
int w = (int)(pic.Width / (1.0 + x ) / 1.3);
でいけるはず Fontをファイルに保存したい。この場合name,style,sizeに分解して保存するのだろうか?
他に何かいい方法は? >>751
多分VSのアプリケーション設定のところでシリアライズして保存できるようにできる >>751
もう少し意味が通じるようにまとめろよ
Font.Familyname:string
FontStyle:int
FontSize:float(single) これな
https://i.imgur.com/ZyRzEn7.png
これで保存
Properties.Settings.Default.*** = font;
Properties.Settings.Default.Save();
これで読み出し
var font = Properties.Settings.Default.***;
ユーザーのアプリケーションデータフォルダの中にxmlで保存されるようになってる var conv = TypeDescriptor.GetConverter(typeof(Font));
var text = conv.ConvertToString(font);
font = (Font)conv.ConvertFromString(text); それがあるのは知っていたけど、Settingsってそんなふうに使うのか。初めて知った。
便利そう。ありがとう。
前に設定してみたけど、ビルドすると直ぐに消えてしまうので、どうやって使うのか
わからなかった。 Properties.Settings.Default.DispFont = lblFont.Font ;
エラー 1 プロパティまたはインデクサー 'Properties.Settings.DispFont' は読み取り専用なので、割り当てることはできません。
フォントはリードオンリーになるので設定は無理ぽい。 >>761
スコープのところをアプリケーションにしたのが間違いだった。ユーザーにしたら
いけた。
でも暫くやって意味がわからなかったので結局はJson.netを使って保存した。
クラスをそのままシリアライズしたらFontもなにもかも一切合切勝手にシリアライズ
してくれた。W
これは分かりやすい。一発でわかった。 class 年齢 {
public string 名前{ get; set; }
public int 年齢{ get; set; }
}
List<年齢> 年齢リスト = new List<年齢>();
このような年齢型の年齢リストがあったとして、
年齢が21のリストだけを抽出したい場合、ラムダ式ではどのように書けば良いのでしょうか? list.FindAll(x=>x.年齢==21) >>765
ありがとうございます。明日試してみます! 配列の要素すべてが0もしくは1000でなかったらという論理式を書きたいのですが で、っていう
その文章、「でない」がどう掛かるのかあいまいで二通りの解釈が可能だから、
解釈の余地がなくなる別の表現を工夫した方がいいと思うよ >>770
arr.All(x=>x!=0&&x!=1000) >>771
ドキュメントでよくあるよなこれ
この種のミスをする奴は何度注意しても直らないんだよ ねえわwリアルでもこんなアスペばかりで困るけどなw arr.All(x=>!(x==0||x==1000))
!arr.All(x=>x==0||x==1000) 日本語で書くから間違える
最初からコード書けばいいのにね >>775
お前の読解力が絶望的だってのはわかった >>777
なるほど、つまり>>770は、
arr.All(x=>!(x==0||x==1000))
を書きたいのですが
もしくは、
!arr.All(x=>x==0||x==1000)
を書きたいのですが
と質問すべきだったと。
確かにこれなら解釈が割れる心配ないね! >>689
どーせ、CreateCompatibleDCみたいな話 初心者だからわからないんだろうけど
そういうリソース系は数量をチェックしても無駄だよ
チェックした時点で大丈夫かもしれないけど
使うとき限界に達してるかもしれない
どこも保証しない
実行して失敗なら失敗 鉛筆の数をチェックしてあまり1本あっても自分が使うまでのわずかな間に
別のアプリがその鉛筆を使うと自分は使えない いきなり鉛筆をつかもうとする
つかめなかったらwindowsは異常な事態になってるので回復は不能
アプリを落とす
自分で鉛筆を使ってる場合使わなくなったら即座に開放
たったこれだけ c♯固有の話では無いですがインターフェースのファイルとクラスのファイルは一般的に同じフォルダに入れてるのでしょうか?
インターフェース用フォルダ、抽象クラス用フォルダ、クラス用フォルダと分けた方が見やすいとかあるのかなと思いまして c#固有じゃないとは言い切れない
ご自由にというか
その時のルールがあるならそれに従えばいい
c#はjavaのようにフォルダ構造が名前空間じゃないから >>788
普通は名前空間に合わせる
ソースにオリジナリティを出すな >>790
なるほど名前空間で別けるのですね
独学初心者には思いもつきませんでした
参考になります いや、それは単にVSがそういう前提で作ってある(ソリューションエクスプローラから
新規にファイルを作った時のスケルトンの名前空間がプロジェクトの規定の名前空間に
フォルダ階層がくっついたものになる)ってだけの話で、別に必要なら単に分類のために
フォルダ作ってもいいと思うよw
そんなケースはあんまりないとは思うけど そういう前提には作ってないよ
設定があってチェック外せばどのフォルダで作っても同じ名前空間になる >>798
最大で140℃くらいまでしか開かないので、コピー機に入りません(>_<) >>783
昔、GDI+とMFC or Win32APIから.netに移行する表とその説明があったけど、検索で調べきれないわ。
さかのぼると、WM_PAINT, BeginPaintとか古典的な描画APIとかの話になるから
今、ディスプレイドライバーのソースを見てるけど、なかなか説明が難しいわ
ごめんなさいね デバイスコンテキストの説明になんでドライバまで降りるねん。 非常に単純化した話として
windowsは特定のリソースを数字で管理してるけど
その数字の上限が決まってる
管理してる空きがないと確保できない
単純な話
出来ないものはできない
それだけ
何も難しくない だから使わなくなったらすぐに解放しておけばいい
それだけ
何も難しいことはないけど馬鹿がこねくり回して難しい難しい言ってるだけ
サンプルソースで開放してないのは1個ぐらいもれてても実害はないから
実装する際は自分で実装したらいい 実はウンコもちょっとくらいもれてても実害はない。お前のパンツは飾りか? パンツに漏れてるウンコなら気にしちゃうけど
公園の片隅に置いてあるウンコは無視しちゃう WinFormsの自作Componemtでデータをネットから取得するメソッドで、完了と失敗のイベントを実装するのは普通ですか? 問題ないと思うが、今の流行りならasync Task<Hoge>等で結果返すパターンかな >>801
ごめんね。
低レベルでアロケータがどうなってるのか気になって。
( ノД`)… U+2028/2029に初めて遭遇したんだが
文字列を1文字ずつ走査して IsSeparator が true だったら削除して詰める、って関数ない? 秒で書けるのによくそんな事質問する気になるな
気が長いやつだ 区切り文字を削除したいシチュエーションなんか普通はないしな
知らんけど ところで拡張メソッドって参照されないんだっけ?
public static System.Data.SqlClient.SqlCommand CreateCommand(this System.Data.SqlClient.SqlTransaction SqlTransaction)
{
var SqlCommand = SqlTransaction.Connection.CreateCommand();
SqlCommand.Transaction = SqlTransaction;
return SqlCommand;
}
BeginTransaction した後のトランザクションを使って CreateCommand すると
トランザクションの内側に入る、的な糞メソッドを作ったんだけど
どうやら、トランザクションの外側になっちゃうっぽいんだ。
→ Rollback しても戻らない
→ ブレークポイントしながら見てると、トランザクション自体が開始されていない
ref this で解決するかと思いきやクラスはダメで使えない
VB.NET だと普通に出来ちゃうと聞くが コードでコントロールのプロパティを規定値(DefalutValue属性の値)にリセットする方法はありますか?(>_<) PropertyDescriptor(ctrl).GetProperties()[nameof(ctrl.Property)].ResetValue(); c#っぽい独自言語の解析をしてるんですが
コメントの「//」や「/*」「*/」の解析って
ダブルコーテーション内と外ってどうやって判断したらよいでしょうか? >>824
やり方次第
作ったことあるのでわかりやすいのは文法をのままコードにする
頭から呼んでって状態を覚えておく
文字リテラル内は解析しないでエスケープルールや”の監視だけする
//や/*コメントの時は行末まで読み捨て >>826
それがわからない
文字列リテラルなのかコメントなのか判断できない
ダブルコーテーションから判定するとそれがコメントだったとき駄目
コメントから判定するとそれが文字列リテラルだったとき駄目
っていうパラドックス >>829
それは変なやり方してるからだろ
おおかた正規表現などで判定してるんだろう
コードを頭から読んでできないのは
文法がおかしいかパースのやり方がおかしいからだ 急がないならどれかの言語のコードでもじっくり読んで勉強したらいい
大体の言語はオープンソースなので好きなのをやればいい
ただしc++の知識ぐらいはいる
急ぐならテストパターンを十分に用意して手あたり次第やればいい >>830
やけっぱちで
解析のコメント削除時に「//」か「/*」見つけたら同じ行の前側みて
文字列リテラル中かどうかみる処理入れて乗り切ってみた >同じ行の前側みて
うん、かなり無茶苦茶だな
先頭から順に読んでいって、「今は文字列リテラル中」とか「今はコメント中」とかの状態を保持しておけよ ■ このスレッドは過去ログ倉庫に格納されています