「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
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/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part135
http://mevius.5ch.net/test/read.cgi/tech/1517749348/
■コードを貼る場合は↓を使いましょう。
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
探検
ふらっと C#,C♯,C#(初心者用) Part136
レス数が1000を超えています。これ以上書き込みはできません。
2018/03/03(土) 15:09:05.75ID:SBEkwl3H
906デフォルトの名無しさん
2018/04/01(日) 00:58:58.57ID:AmnK79El 教えてください。
以下のような事をしたいと思います。
再現のために最低限必要なところだけを抜き出しているので、これだけだと意味が不明ですが、
同じような処理があちこちにあるので処理をまとめるため、このような事をしています。
public void Execute( string sql )
{
using (var command = new System.Data.SqlClient.SqlCommand(sql.ToString() ))
{
}
}
これをビルドしても警告等は出ませんが、コード分析の実行を行うと SqlCommand のところで
CA2100 の警告が出ます。意味は以下のページの通りです。
https://msdn.microsoft.com/ja-jp/library/ms182310.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3
要するに関数パラメータで受け取った文字列にはなにが含まれているのか分からないので危ないよ、と言われているのだと思いますが
出来れば上の関数を利用する形式で進めたいと思います。
この形式のまま CA2100 を回避する手段のアドバイスをいただけると助かります。
以下のような事をしたいと思います。
再現のために最低限必要なところだけを抜き出しているので、これだけだと意味が不明ですが、
同じような処理があちこちにあるので処理をまとめるため、このような事をしています。
public void Execute( string sql )
{
using (var command = new System.Data.SqlClient.SqlCommand(sql.ToString() ))
{
}
}
これをビルドしても警告等は出ませんが、コード分析の実行を行うと SqlCommand のところで
CA2100 の警告が出ます。意味は以下のページの通りです。
https://msdn.microsoft.com/ja-jp/library/ms182310.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3
要するに関数パラメータで受け取った文字列にはなにが含まれているのか分からないので危ないよ、と言われているのだと思いますが
出来れば上の関数を利用する形式で進めたいと思います。
この形式のまま CA2100 を回避する手段のアドバイスをいただけると助かります。
907デフォルトの名無しさん
2018/04/01(日) 01:09:42.05ID:v0T9GXCI908デフォルトの名無しさん
2018/04/01(日) 01:10:28.60ID:RE1ojOXr MDT_RAW_DPIで物理的なppiに近い値が返ってくるからそれ使えで済む話、で終われば良いんだが
あれちゃんとした値が返ってくる保証が無さそうなのがねー
あれちゃんとした値が返ってくる保証が無さそうなのがねー
909デフォルトの名無しさん
2018/04/01(日) 01:21:16.42ID:GUPc3ba+ C#は、C++を難しく感じる人が使う言語だから。
910デフォルトの名無しさん
2018/04/01(日) 01:26:38.59ID:Cu8+FDkh 文法だけならC言語が一番好き
クラス以降いらねー
クラス以降いらねー
911デフォルトの名無しさん
2018/04/01(日) 01:39:12.76ID:AmnK79El912デフォルトの名無しさん
2018/04/01(日) 01:43:15.77ID:UKmXoisc >>906
なんでToStringしてんの?
なんでToStringしてんの?
913デフォルトの名無しさん
2018/04/01(日) 01:45:10.58ID:AmnK79El914デフォルトの名無しさん
2018/04/01(日) 02:06:42.96ID:1BdiydkK 急にタメ語になるのほんと草
915デフォルトの名無しさん
2018/04/01(日) 02:10:36.19ID:Cu8+FDkh916デフォルトの名無しさん
2018/04/01(日) 04:52:35.48ID:fKZaPfKf917デフォルトの名無しさん
2018/04/01(日) 05:05:19.22ID:fKZaPfKf918デフォルトの名無しさん
2018/04/01(日) 09:03:31.17ID:gIH0xNQX919デフォルトの名無しさん
2018/04/01(日) 10:20:28.44ID:JxTU817j ストアド使いなさいよ
920906
2018/04/01(日) 13:39:58.60ID:AmnK79El レスをくださった皆さん、ありがとうございます。
>>917
現状では、 教えていただいた属性をつける方法を相談して、NG ならこのまま警告を残す。って方向かなと思います。
一応、先のリンク先の以下に当てはまるのでセキュリティ的には問題ないと考えます。
>警告を抑制する状況
>コマンド テキストにユーザー入力が含まれない場合は、この規則による警告を抑制しても安全です。
>>918
>ちゃんとやるならやりたいこと毎に関数作って
同じような処理があちこちにあるのを嫌って、906 のように出来ないかなと考えました。
ただ、一般的なやり方ではなかったかも知れません。
>>919
ストアドとは、たとえばこのリンク先の事で正しいですか。
https://code.msdn.microsoft.com/windowsdesktop/DataAccess-howto-32c91bf0
自分が試した限りでは CA2100 が出ました。
いままではストアドでも execute 付けて普通に SQL 文として実行してましたが、こういう方法もあったのだと勉強になりました。
またストアドはローカルDB では問題ないのですが、基幹DB では使わせてもらえないようです。軽く聞いてみた範囲での事ですが。
>>917
現状では、 教えていただいた属性をつける方法を相談して、NG ならこのまま警告を残す。って方向かなと思います。
一応、先のリンク先の以下に当てはまるのでセキュリティ的には問題ないと考えます。
>警告を抑制する状況
>コマンド テキストにユーザー入力が含まれない場合は、この規則による警告を抑制しても安全です。
>>918
>ちゃんとやるならやりたいこと毎に関数作って
同じような処理があちこちにあるのを嫌って、906 のように出来ないかなと考えました。
ただ、一般的なやり方ではなかったかも知れません。
>>919
ストアドとは、たとえばこのリンク先の事で正しいですか。
https://code.msdn.microsoft.com/windowsdesktop/DataAccess-howto-32c91bf0
自分が試した限りでは CA2100 が出ました。
いままではストアドでも execute 付けて普通に SQL 文として実行してましたが、こういう方法もあったのだと勉強になりました。
またストアドはローカルDB では問題ないのですが、基幹DB では使わせてもらえないようです。軽く聞いてみた範囲での事ですが。
921デフォルトの名無しさん
2018/04/01(日) 18:26:06.48ID:+XMM3OWE 20年以上前にcを使っていたことがあるという状態で、c#を独学で学び始めたところです
極めて初歩的な話だとは思いますが、どうしてもわからないので教えてください
下記のコードで、「未割り当てのローカル変数'num'が使用されました」というエラーが出て
コンパイルできません。
try-catch構文の後の Console.WriteLine(...) を、try節の中に中に入れるとコンパイルが
できるのですが、try - catch構文以降は、変数のスコープが失われてしまうということなの
でしょうか。
using System;
class ExceptionTest
{
static void Main()
{
int num;
string s;
try
{
Console.Write("enter a number : ");
s = Console.ReadLine();
num = Int32.Parse(s);
} catch(Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Your number : " + num);
}
}
極めて初歩的な話だとは思いますが、どうしてもわからないので教えてください
下記のコードで、「未割り当てのローカル変数'num'が使用されました」というエラーが出て
コンパイルできません。
try-catch構文の後の Console.WriteLine(...) を、try節の中に中に入れるとコンパイルが
できるのですが、try - catch構文以降は、変数のスコープが失われてしまうということなの
でしょうか。
using System;
class ExceptionTest
{
static void Main()
{
int num;
string s;
try
{
Console.Write("enter a number : ");
s = Console.ReadLine();
num = Int32.Parse(s);
} catch(Exception e)
{
Console.WriteLine(e.Message);
}
Console.WriteLine("Your number : " + num);
}
}
922デフォルトの名無しさん
2018/04/01(日) 18:40:32.32ID:ut+4lapb >>921
もしtryブロックの中で例外が発生した場合、
> Console.WriteLine("Your number : " + num);
この行に到達した時点でnumの値はどうなってるでしょうか?
もしtryブロックの中で例外が発生した場合、
> Console.WriteLine("Your number : " + num);
この行に到達した時点でnumの値はどうなってるでしょうか?
923デフォルトの名無しさん
2018/04/01(日) 18:48:12.04ID:GWiU0YBt 未定義
924デフォルトの名無しさん
2018/04/01(日) 18:50:28.41ID:JxTU817j >>921
null許容型にするか、素直に0で初期化しておく
null許容型にするか、素直に0で初期化しておく
925デフォルトの名無しさん
2018/04/01(日) 18:50:55.68ID:JxTU817j >>920
ストアドはそのとおりです
ストアドはそのとおりです
926デフォルトの名無しさん
2018/04/01(日) 18:51:15.76ID:/o+55+4t >>921
スコープの問題ではなく、try節のnum代入に到達しない可能性があるから
文脈からすれば仰る様にnum出力をtry節に含める、あるいはint num = 0;等…
C#はそういうの然り、C/C++よりガチガチに厳しい
スコープの問題ではなく、try節のnum代入に到達しない可能性があるから
文脈からすれば仰る様にnum出力をtry節に含める、あるいはint num = 0;等…
C#はそういうの然り、C/C++よりガチガチに厳しい
927デフォルトの名無しさん
2018/04/01(日) 19:28:44.37ID:fxgoPYx5 そのうちc#にもdeferが導入されるみたいだけどそういうのでボコボココンパイルエラーが出るようになるのか
928デフォルトの名無しさん
2018/04/01(日) 19:39:39.66ID:xe0krAxA >>926
C/C++でだって未初期化の値を使うコードを書くべきじゃ無いけどな
C/C++でだって未初期化の値を使うコードを書くべきじゃ無いけどな
930デフォルトの名無しさん
2018/04/01(日) 23:12:20.14ID:ECJY99tL 未初期化の(可能性がある)変数は、参照できない。バグ
931デフォルトの名無しさん
2018/04/02(月) 12:27:49.40ID:7SJzoey2 必ず初期化されるやんC#
932921
2018/04/02(月) 12:31:36.23ID:sF1TxYYm 皆様ありがとうございます
変数numが定義されていないというエラーだとばかり思っていたのですが、初期化されていないという意味だったのですね
理解できました
変数numが定義されていないというエラーだとばかり思っていたのですが、初期化されていないという意味だったのですね
理解できました
933921
2018/04/02(月) 12:37:01.02ID:sF1TxYYm >>931
私もそう思っていたのですが、違うのでしょうか
手元に書籍がないので、参考にしている本にはなんと書いてあるか不明ですが、
c#では整数型の変数は自動的に0で初期化される、と書いているサイトも
あるようです
私もそう思っていたのですが、違うのでしょうか
手元に書籍がないので、参考にしている本にはなんと書いてあるか不明ですが、
c#では整数型の変数は自動的に0で初期化される、と書いているサイトも
あるようです
934921
2018/04/02(月) 12:39:19.98ID:sF1TxYYm935デフォルトの名無しさん
2018/04/02(月) 18:07:44.63ID:6bvpmFc5 C#技術者は他の言語に比べて年収はいいんですか?
936デフォルトの名無しさん
2018/04/02(月) 18:13:31.05ID:XIES5nIM >>935
ここが技術板なのでプログラマ板で聞いてください
ここが技術板なのでプログラマ板で聞いてください
937デフォルトの名無しさん
2018/04/02(月) 20:42:37.26ID:6Vp1brVM winformsのTableLayoutPanelで2つの列を作成したとき、プログラムの実行中に左右の幅をマウスで調整することはできますか?
938デフォルトの名無しさん
2018/04/02(月) 20:44:29.22ID:MPXX1X60 >>937
どのコントロールでもMouseDown/Move/UpイベントとSize指定ができればいくらでもできる
どのコントロールでもMouseDown/Move/UpイベントとSize指定ができればいくらでもできる
939デフォルトの名無しさん
2018/04/02(月) 22:39:46.16ID:zzbs2RRz 解釈の原因は解釈者が持つ自分ルール。解釈の自由は責任を伴う
言葉風紀世相の乱れはそう感じる人の心の乱れの自己投影。人は鏡
憤怒は一時の狂気、無知無能の自己証明。中途半端な知識主ほど激昂
「真実は一つ」は錯誤。執着する者ほど矛盾を体験(争い煩悩)
他人に不自由(制約)を与えれば己も不自由(不快)を得る
問題解決力の乏しい者ほど自己防衛の為に礼儀作法マナーを要求
情報分析力の低い者ほどデマ宗教フェイク疑似科学に感化洗脳
自己肯定感の欠けた者ほど「己の知見こそ全で真」に自己陶酔
人生経験の少ない者ほど嫌いキモイ怖いウザイ憎い想定外を体験
キリスト教は世界最大のカルト。聖書は史上最も売れているト本
全ては必然。偶然 奇跡 理不尽 不条理は思考停止 視野狭窄の産物
人生存在現象に元々意味価値理由目的義務使命はない
宗教民族領土貧困は争いの原因ではなく口実動機言訳(原因帰属錯覚)
虐め差別犯罪テロ紛争は根絶可能。必要なのは適切十分な高度教育
体罰は指導力問題解決力の乏しい教育素人の独善甘え怠慢責任転嫁
死刑は民度の低い排他的集団リンチ殺人。「死ねば償える」は偽善
核武装論は人間不信と劣等感に苛まれた臆病な外交素人の精神安定剤
投票率低下は社会成熟の徴候。奇人変人の当選は議員数過多の証左
感情自己責任論 〜学校では教えない合理主義哲学〜 m9`・ω・)
言葉風紀世相の乱れはそう感じる人の心の乱れの自己投影。人は鏡
憤怒は一時の狂気、無知無能の自己証明。中途半端な知識主ほど激昂
「真実は一つ」は錯誤。執着する者ほど矛盾を体験(争い煩悩)
他人に不自由(制約)を与えれば己も不自由(不快)を得る
問題解決力の乏しい者ほど自己防衛の為に礼儀作法マナーを要求
情報分析力の低い者ほどデマ宗教フェイク疑似科学に感化洗脳
自己肯定感の欠けた者ほど「己の知見こそ全で真」に自己陶酔
人生経験の少ない者ほど嫌いキモイ怖いウザイ憎い想定外を体験
キリスト教は世界最大のカルト。聖書は史上最も売れているト本
全ては必然。偶然 奇跡 理不尽 不条理は思考停止 視野狭窄の産物
人生存在現象に元々意味価値理由目的義務使命はない
宗教民族領土貧困は争いの原因ではなく口実動機言訳(原因帰属錯覚)
虐め差別犯罪テロ紛争は根絶可能。必要なのは適切十分な高度教育
体罰は指導力問題解決力の乏しい教育素人の独善甘え怠慢責任転嫁
死刑は民度の低い排他的集団リンチ殺人。「死ねば償える」は偽善
核武装論は人間不信と劣等感に苛まれた臆病な外交素人の精神安定剤
投票率低下は社会成熟の徴候。奇人変人の当選は議員数過多の証左
感情自己責任論 〜学校では教えない合理主義哲学〜 m9`・ω・)
940デフォルトの名無しさん
2018/04/02(月) 23:16:17.88ID:VPR2x1c1 2chビューワのスレ欄のように、listViewでマウスオーバーするとその行の文字にアンダーラインが入るようにしたいです。
やってみると、以下のサイトにそれに近い方法がけいさいされていたのですが、サイトに指摘があるように画面がちらつきます。
ListViewのアイテムがポイントで選択、シングルクリックでアクティブにできるようにする - .NET Tips (VB.NET,C#...)
https://dobon.net/vb/dotnet/control/lvpointselection.html
そのため、ちらつきを抑制する方法を探したところ、いろいろ出てきましたが、どこにどのコードを記述すればいいのかさっぱりわかりませんでした。
下記サイトが一番丁寧な気がしましたが、これを参考にしてもフォーム上にlistviewが出てきません。
ListViewを更新したときのちらつきを抑制する(C#メモ): amongの雑記
どうすれば、ちらつきを抑えたlistviewを作成することができるのでしょうか?教えてください。
やってみると、以下のサイトにそれに近い方法がけいさいされていたのですが、サイトに指摘があるように画面がちらつきます。
ListViewのアイテムがポイントで選択、シングルクリックでアクティブにできるようにする - .NET Tips (VB.NET,C#...)
https://dobon.net/vb/dotnet/control/lvpointselection.html
そのため、ちらつきを抑制する方法を探したところ、いろいろ出てきましたが、どこにどのコードを記述すればいいのかさっぱりわかりませんでした。
下記サイトが一番丁寧な気がしましたが、これを参考にしてもフォーム上にlistviewが出てきません。
ListViewを更新したときのちらつきを抑制する(C#メモ): amongの雑記
どうすれば、ちらつきを抑えたlistviewを作成することができるのでしょうか?教えてください。
941デフォルトの名無しさん
2018/04/02(月) 23:17:15.94ID:VPR2x1c1 すいません、
>ListViewを更新したときのちらつきを抑制する(C#メモ): amongの雑記
についてはNGワードとなってしまいました
下記のURLのスペースを抜いたものです。
http://amonution.sb lo.jp/article/45398035.html
>ListViewを更新したときのちらつきを抑制する(C#メモ): amongの雑記
についてはNGワードとなってしまいました
下記のURLのスペースを抜いたものです。
http://amonution.sb lo.jp/article/45398035.html
942デフォルトの名無しさん
2018/04/02(月) 23:31:51.83ID:MPXX1X60 >>940
これもどのコントロールでも同じなんだがコントロールにダブルバッファのプロパティを付け加えた新しいコントロールを作ってそれを使う
おなじdobonのサイトに「リフレクションを使って、DoubleBufferedプロパティにアクセスする」もある
https://dobon.net/vb/dotnet/control/doublebuffered.html
これもどのコントロールでも同じなんだがコントロールにダブルバッファのプロパティを付け加えた新しいコントロールを作ってそれを使う
おなじdobonのサイトに「リフレクションを使って、DoubleBufferedプロパティにアクセスする」もある
https://dobon.net/vb/dotnet/control/doublebuffered.html
943デフォルトの名無しさん
2018/04/02(月) 23:50:34.23ID:VPR2x1c1 >>942
返信ありがとうございます。
初心者なもので
>ダブルバッファのプロパティを付け加えた新しいコントロールを作ってそれを使う
これの方法がよくわからないのです。
そのページも見たのですが、
>public class DoubleBufferingListView : ListView
以下の部分を全体のコードのどこに記述ればいいのか、記述したあとそれをどうやって使うのか、というのがそもそもわからないのです。
返信ありがとうございます。
初心者なもので
>ダブルバッファのプロパティを付け加えた新しいコントロールを作ってそれを使う
これの方法がよくわからないのです。
そのページも見たのですが、
>public class DoubleBufferingListView : ListView
以下の部分を全体のコードのどこに記述ればいいのか、記述したあとそれをどうやって使うのか、というのがそもそもわからないのです。
944デフォルトの名無しさん
2018/04/02(月) 23:53:34.69ID:6Vp1brVM >>938
すみません、もう少し詳しくおしえていただけないでしょうか?
もとの文では分かりづらかったかもしれませんが、コントロール中の左右の幅(比率)を変更したいです。
(デザイナ上でやるように、つまみを掴んで左右に動かすイメージです)
すみません、もう少し詳しくおしえていただけないでしょうか?
もとの文では分かりづらかったかもしれませんが、コントロール中の左右の幅(比率)を変更したいです。
(デザイナ上でやるように、つまみを掴んで左右に動かすイメージです)
945デフォルトの名無しさん
2018/04/02(月) 23:54:11.10ID:VPR2x1c1 とりあえず、namespaceの直下に貼り付けてみてビルド→うーん、エラーか
public partial class Form1 : Formの下に貼り付けてみる→動いたが、じゃあ次に何をすればいいのかわからん。
こんなレベルです。
public partial class Form1 : Formの下に貼り付けてみる→動いたが、じゃあ次に何をすればいいのかわからん。
こんなレベルです。
946デフォルトの名無しさん
2018/04/03(火) 00:03:03.60ID:BdcH2dSM947デフォルトの名無しさん
2018/04/03(火) 00:16:48.21ID:Bkifwxhh >>946
public partial class Form1 : Formの直下に記述して、F7を押してビルドして、form1.cs[デザイン]タブを開いてみましたが、
特に何か増えたような様子はありませんでした。
ご指摘事項を正しく実行できてますでしょうか?
public partial class Form1 : Formの直下に記述して、F7を押してビルドして、form1.cs[デザイン]タブを開いてみましたが、
特に何か増えたような様子はありませんでした。
ご指摘事項を正しく実行できてますでしょうか?
948デフォルトの名無しさん
2018/04/03(火) 00:25:08.53ID:h9dQUiAD949デフォルトの名無しさん
2018/04/03(火) 10:13:42.24ID:Bkifwxhh すいません、これで解決しました。
System.Windows.Forms.Control のダブルバッファリングをさくっと有効にする - kawanon
http://d.hatena.ne.jp/m_kawanon/20100708/1278587297
System.Windows.Forms.Control のダブルバッファリングをさくっと有効にする - kawanon
http://d.hatena.ne.jp/m_kawanon/20100708/1278587297
950デフォルトの名無しさん
2018/04/03(火) 21:10:02.31ID:tN12x087 リッチテキストボックスのスクロールバーだけ、ドラッグしてもバーがついてこないのですが、
私だけでしょうか?
私だけでしょうか?
951デフォルトの名無しさん
2018/04/03(火) 21:29:32.68ID:vN2mpw+F 業務用アプリをオサレな画面にしたいんだけどWPF使ってそこらのテーマ拾ってくるのが手っ取り早いかね
952デフォルトの名無しさん
2018/04/03(火) 23:35:42.00ID:VCT3rU1H953デフォルトの名無しさん
2018/04/03(火) 23:39:30.70ID:LPfCppd2 デザインパターンって大事ですか?
954デフォルトの名無しさん
2018/04/03(火) 23:42:17.43ID:TkuXyycY 普通は大事じゃない
メジャーな一部の奴だけなぞっておけばいい
メジャーな一部の奴だけなぞっておけばいい
955デフォルトの名無しさん
2018/04/04(水) 00:15:51.60ID:Lt0+eORa956デフォルトの名無しさん
2018/04/04(水) 00:29:06.64ID:scqJAZTy >>953
全身シングルトンで武装して備えろ
全身シングルトンで武装して備えろ
957デフォルトの名無しさん
2018/04/04(水) 01:35:51.04ID:gGAYD4mI ざっと知っておくに越した事は無い
使うかどうかは別としてね
むしろ、「これはやるな」っていうアンチパターンを覚えた方が良いかもだ
使うかどうかは別としてね
むしろ、「これはやるな」っていうアンチパターンを覚えた方が良いかもだ
958デフォルトの名無しさん
2018/04/04(水) 02:58:58.46ID:3/OGlZbi バグってハニー
959デフォルトの名無しさん
2018/04/04(水) 07:59:24.78ID:ClxMGJax material designとかタッチメインならいいけど、マウスメインのデスクトップアプリならmaterial designはスペースが無駄すぎる
960デフォルトの名無しさん
2018/04/04(水) 20:33:02.49ID:n4eM316R excelファイルを操作する必要があり、いろいろ調べたらclosedXMLを使うのが良さそうという
結論に達したのですが、詳しい解説のあるサイトや書籍はないでしょうか。
ファイルの開き方、セルの参照方法などは普通に見つかるのですが、提供されている
メソッドの一覧とか、発生する例外とか、実用上知っておくべきことを知りたいのです
(主にエラートラップをするためです)
公式ドキュメントがどこにあるかすら発見できなかった程度の英語力ですが、ドキュメントの
ありかを教えていただければ、辞書を引きながらでも調べてみます
結論に達したのですが、詳しい解説のあるサイトや書籍はないでしょうか。
ファイルの開き方、セルの参照方法などは普通に見つかるのですが、提供されている
メソッドの一覧とか、発生する例外とか、実用上知っておくべきことを知りたいのです
(主にエラートラップをするためです)
公式ドキュメントがどこにあるかすら発見できなかった程度の英語力ですが、ドキュメントの
ありかを教えていただければ、辞書を引きながらでも調べてみます
961デフォルトの名無しさん
2018/04/04(水) 20:50:20.08ID:K+0BZuJc Excel操作はCOM Automation以外には手を出すな
地獄を見ることになる
地獄を見ることになる
962デフォルトの名無しさん
2018/04/04(水) 20:53:47.86ID:Uk0C/m1f ClosedXMLはマジ大変
963デフォルトの名無しさん
2018/04/04(水) 21:05:58.11ID:Ft6CGKk+ 村の禁忌に触れたような言い様だなw
964デフォルトの名無しさん
2018/04/04(水) 21:27:26.09ID:mQqkiub7 泣く子はいねかー
965デフォルトの名無しさん
2018/04/04(水) 21:30:08.25ID:PCVfDfH6 ExcelのCOMオートメーションはサーバーでの動作保証が無い時点でゴミなんすよ
966デフォルトの名無しさん
2018/04/04(水) 21:32:26.97ID:BmbE00Mi >>960
https://github.com/closedxml/closedxml/wiki
使ったことないけどExcelDataReaderも速さの面ではいいってどっかの記事で見た
https://github.com/ExcelDataReader/ExcelDataReader
https://github.com/closedxml/closedxml/wiki
使ったことないけどExcelDataReaderも速さの面ではいいってどっかの記事で見た
https://github.com/ExcelDataReader/ExcelDataReader
967デフォルトの名無しさん
2018/04/04(水) 22:21:19.70ID:noE6VTyE エクセルファイルなんてグレープシティのスプレッド買えば一瞬で終わるだろ
968デフォルトの名無しさん
2018/04/04(水) 22:50:52.54ID:OrTn2AQm WPFってどういう用途なら使うべき?
文献やネット検索が少なくて使えん
文献やネット検索が少なくて使えん
969デフォルトの名無しさん
2018/04/04(水) 23:00:46.54ID:T8BktjHU EPPlus
970デフォルトの名無しさん
2018/04/04(水) 23:21:00.13ID:Lsgd0/8M971デフォルトの名無しさん
2018/04/04(水) 23:34:42.99ID:Lt0+eORa やたらElectron推す人いるけど、言うほどMSが勧めてるかなぁ
972デフォルトの名無しさん
2018/04/04(水) 23:42:42.72ID:9CBA0Lmr Electronは縦書きエディタすら作れない駄目なやつ
表示はどうにでも出来るが入力が機能的に絶対無理とか俺が費やした半日を返せよ
表示はどうにでも出来るが入力が機能的に絶対無理とか俺が費やした半日を返せよ
973960
2018/04/04(水) 23:46:48.80ID:n4eM316R974デフォルトの名無しさん
2018/04/04(水) 23:48:56.91ID:v0eOpRGB >>969
EPPlusは早いし使いやすいよね
EPPlusは早いし使いやすいよね
975デフォルトの名無しさん
2018/04/05(木) 02:05:31.70ID:G4evJUNh >>972
縦書きはWPFも非対応だろ
縦書きはWPFも非対応だろ
976デフォルトの名無しさん
2018/04/05(木) 08:55:29.27ID:3wDwo2/L MSがPWAに手を出したから、類似技術のElectronは始まる前にMSでは終わった
977デフォルトの名無しさん
2018/04/05(木) 10:13:54.51ID:c77DGTlb コンソールとフォームしか作ったことないけどまだまだいけますか?
978デフォルトの名無しさん
2018/04/05(木) 11:09:05.32ID:796HNo8s 趣味ならどうでもいい
職業ならWebできないと仕事ない
職業ならWebできないと仕事ない
979デフォルトの名無しさん
2018/04/05(木) 12:00:33.19ID:D2y+fK6k てっきり今後はWPFが主流になると思って使ってみたけど、
情報がネットに少なすぎてまいったわ
情報がネットに少なすぎてまいったわ
980デフォルトの名無しさん
2018/04/05(木) 14:16:56.73ID:+3oTwv9E 趣味で作ってるから問題ないわ
981デフォルトの名無しさん
2018/04/05(木) 21:48:57.38ID:2ZtD67QF 例外処理について教えてください
簡単な例で、キーボードから数字を入力させて処理するとして、非数字が入力されたら
数字が入力されるまで、正しい入力をするよう促したいとします
(これだけなら例外を使わなくても簡単ですが、あくまで例として)
bool flag = false;
string str;
int i=0;
while(flag != true)
{
try
{
Console.Write("enter a number = ");
str = Console.ReadLine();
i = Int32.Parse(str);
flag = true;
} catch
{
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
こんな感じで、try-catchの間をループで囲んで、脱出フラグを用意するのが正攻法
なのでしょうか?
なんかもっとスマートな方法がありそうなのですが
簡単な例で、キーボードから数字を入力させて処理するとして、非数字が入力されたら
数字が入力されるまで、正しい入力をするよう促したいとします
(これだけなら例外を使わなくても簡単ですが、あくまで例として)
bool flag = false;
string str;
int i=0;
while(flag != true)
{
try
{
Console.Write("enter a number = ");
str = Console.ReadLine();
i = Int32.Parse(str);
flag = true;
} catch
{
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
こんな感じで、try-catchの間をループで囲んで、脱出フラグを用意するのが正攻法
なのでしょうか?
なんかもっとスマートな方法がありそうなのですが
982デフォルトの名無しさん
2018/04/05(木) 21:57:03.35ID:dUUr3xK4983デフォルトの名無しさん
2018/04/05(木) 21:58:19.97ID:M7HPB+1x do while
int.TryParse
int.TryParse
984デフォルトの名無しさん
2018/04/05(木) 21:59:25.26ID:IVUDpQN0 var i = 0;
while (true) {
Console.Write("enter a number = ");
var str = Console.ReadLine();
try {
i = Int32.Parse(str);
break;
}
catch (FormatException) {
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
while (true) {
Console.Write("enter a number = ");
var str = Console.ReadLine();
try {
i = Int32.Parse(str);
break;
}
catch (FormatException) {
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
985デフォルトの名無しさん
2018/04/05(木) 22:04:19.96ID:IVUDpQN0 iを0で初期化するのもやめたほうが良かったな
986デフォルトの名無しさん
2018/04/05(木) 22:11:00.58ID:2ZtD67QF >>982
すいません、ピンポイントで課題に直面しているのではなくて、勉強中で疑問に思ったので
質問しました
例えばファイルオープンで存在しないファイル名を掴まされたとか、テキストファイルを想定
しているところにバイナリを噛まされたとか、そういうケースのリトライをどうやって実装するのかと
疑問に感じたのです
すいません、ピンポイントで課題に直面しているのではなくて、勉強中で疑問に思ったので
質問しました
例えばファイルオープンで存在しないファイル名を掴まされたとか、テキストファイルを想定
しているところにバイナリを噛まされたとか、そういうケースのリトライをどうやって実装するのかと
疑問に感じたのです
987981
2018/04/05(木) 22:19:06.91ID:2ZtD67QF988デフォルトの名無しさん
2018/04/05(木) 22:24:09.13ID:dUUr3xK4989デフォルトの名無しさん
2018/04/05(木) 22:36:19.31ID:7xCMhR6w 気持ちは分からんでもないが、抽象的な質問しても抽象的な答しか返ってこないと思うw
static void Main(string[] args)
{
var number = 0;
Func<bool> tryAskNumber = () =>
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
};
while (!tryAskNumber())
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
static void Main(string[] args)
{
var number = 0;
Func<bool> tryAskNumber = () =>
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
};
while (!tryAskNumber())
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
990デフォルトの名無しさん
2018/04/05(木) 22:36:33.86ID:796HNo8s991デフォルトの名無しさん
2018/04/05(木) 23:38:35.52ID:IVUDpQN0992981
2018/04/06(金) 06:10:19.26ID:e2Dy7HRM >>989
私の学習では、まだ
Func<bool> tryAskNumber = () =>
この書き方が理解できていないのですが、これでやっているのは例外の処理ではなくて
boolでメソッドの戻り値を評価して処理を繰り返しているのですね?
抽象的な質問だと言われればそのとおりなのですが、エラーが発生したときに例外を
返してくるメソッドを使っているときに、正常処理ができるようになるまで同じ処理を繰り返す、
というケースの質問でした
条件を変えるとかは本質的な話ではなくて、「例外が発生しなくなるまで繰り返す」という
処理フローそのものの質問です
>>984で、break文でtryの中からwhileブロックを抜ければよい、と理解できたので十分です
(tryブロックから、その外側のwhileを抜けられると思ってなかったので躓いてました)
数字入力を取り上げたのは、例として単純で、言わんとすることがすぐに伝わるかと思った
だけです
>>991
>>984
の var i=0; を var i; にしただけだとエラーになりましたが、int i; なら通るんですね
私の学習では、まだ
Func<bool> tryAskNumber = () =>
この書き方が理解できていないのですが、これでやっているのは例外の処理ではなくて
boolでメソッドの戻り値を評価して処理を繰り返しているのですね?
抽象的な質問だと言われればそのとおりなのですが、エラーが発生したときに例外を
返してくるメソッドを使っているときに、正常処理ができるようになるまで同じ処理を繰り返す、
というケースの質問でした
条件を変えるとかは本質的な話ではなくて、「例外が発生しなくなるまで繰り返す」という
処理フローそのものの質問です
>>984で、break文でtryの中からwhileブロックを抜ければよい、と理解できたので十分です
(tryブロックから、その外側のwhileを抜けられると思ってなかったので躓いてました)
数字入力を取り上げたのは、例として単純で、言わんとすることがすぐに伝わるかと思った
だけです
>>991
>>984
の var i=0; を var i; にしただけだとエラーになりましたが、int i; なら通るんですね
993デフォルトの名無しさん
2018/04/06(金) 11:09:07.04ID:iz5pUoek >>981
例外が出たらアプリケーションを止める
ファイルオープンだとしてもそれは変わらず、存在しなくてリトライしたいなら以下のような事前チェックをするべき
if(存在していない)continue;
ってのが理想だけどファイル系のエラーってたくさんあるし、確認しずらいのもあるからtry-catchを使わないのが現実的じゃないことも
メソッドが例外を出すのは使ってはいけない使い方をしているということなので、使っていい状態か確認してから呼び出すよう心がけるべきかな
例外が出たらアプリケーションを止める
ファイルオープンだとしてもそれは変わらず、存在しなくてリトライしたいなら以下のような事前チェックをするべき
if(存在していない)continue;
ってのが理想だけどファイル系のエラーってたくさんあるし、確認しずらいのもあるからtry-catchを使わないのが現実的じゃないことも
メソッドが例外を出すのは使ってはいけない使い方をしているということなので、使っていい状態か確認してから呼び出すよう心がけるべきかな
994デフォルトの名無しさん
2018/04/06(金) 11:31:23.65ID:KffLTaJD foreach(var a in XXX)
{
みたいなことを可能にするためには
XXX はどんなクラスを継承してないといけませんか?
(何が必要か)
たとえば、XXX がDataRowCollection 型だったら
foreach(DataRow a in XXX) とやらないと怒られてしまいます。
DataRow[] だったら、var が使えます。
この違いは一体なんだろう(なにが必要なのかと)、と
{
みたいなことを可能にするためには
XXX はどんなクラスを継承してないといけませんか?
(何が必要か)
たとえば、XXX がDataRowCollection 型だったら
foreach(DataRow a in XXX) とやらないと怒られてしまいます。
DataRow[] だったら、var が使えます。
この違いは一体なんだろう(なにが必要なのかと)、と
995デフォルトの名無しさん
2018/04/06(金) 11:39:53.65ID:QmpxvPzQ ジェネリックインターフェイスを実装してるから
996デフォルトの名無しさん
2018/04/06(金) 11:44:13.58ID:19AXhYIg IEnum〜だっけ
997デフォルトの名無しさん
2018/04/06(金) 11:54:13.71ID:KffLTaJD つまり、DataRowCollection は
IEnumerable を継承しているから、foreach の in に使えるけど
IEnumerable<T> は継承してないから foreach(var は許されない
ということですか
IEnumerable を継承しているから、foreach の in に使えるけど
IEnumerable<T> は継承してないから foreach(var は許されない
ということですか
998デフォルトの名無しさん
2018/04/06(金) 12:11:24.19ID:78uF6QEL >>992
ラムダ式を使わずに書くとこう
static void Main(string[] args)
{
var number = 0;
while (!TryAskNumber(out number))
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
static bool TryAskNumber(out int number)
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
}
プログラミングの基本は一気にすべてを解決しようとしないこと。
問題を小さな問題に分割すること。
「○○が成功するまで繰り返す」なら、○○の部分と成否を判定してリトライ
する部分は分けた方が基本的に分かりやすくなる
抽象的な質問に対して何か言えるのはこの程度だと思うけど....
ラムダ式を使わずに書くとこう
static void Main(string[] args)
{
var number = 0;
while (!TryAskNumber(out number))
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
static bool TryAskNumber(out int number)
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
}
プログラミングの基本は一気にすべてを解決しようとしないこと。
問題を小さな問題に分割すること。
「○○が成功するまで繰り返す」なら、○○の部分と成否を判定してリトライ
する部分は分けた方が基本的に分かりやすくなる
抽象的な質問に対して何か言えるのはこの程度だと思うけど....
999デフォルトの名無しさん
2018/04/06(金) 12:42:38.82ID:bxzO13cU1000デフォルトの名無しさん
2018/04/06(金) 15:01:40.67ID:Mgh91ASd へー
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 33日 23時間 52分 35秒
新しいスレッドを立ててください。
life time: 33日 23時間 52分 35秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 地球から無限km先の場所ってどうなっているの?
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 日本、高市のお陰で破滅に近づくwwwwwwww
- AIアーティストだけど作品公開する
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
