TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
Google App Engine for java
Visual Studio 2019 Part4
☆★Java質問・相談スレッド182★★
[無料でラクラクJava帳票作成] JasperReports使い集合
こんなプログラミング言語は嫌だ!
【Delphi】Embarcaderoオッチャ その34【C++ビルダ】
Regular Expression(正規表現) Part14
OracleJDKからOpenJDKへ。OracleはJava世界に不要
サウンドプログラミング6
Javaはもう死んだの? Part.2

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


1 :2020/05/27 〜 最終レス :2020/06/13
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.2ch.sc/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.2ch.sc/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html

2 :
Unity使わずに3Dやりたい場合ってWPFが標準?
WPFってもうオワコン?

3 :
OpenTKは?

4 :
前スレ>>980ですが、スレッド見てなくて立て忘れてました すみません
代わりに立ててくださってありがとうございました

5 :
ここはワッチョイ無しの https://mevius.2ch.sc/test/read.cgi/tech/1544838367/ の重複スレだから
ワッチョイ有りの http://mevius.2ch.sc/test/read.cgi/tech/1582100741/ の次スレはまだ立っていない

6 :
>>2
始まってすらいないけどWPFでいいよ

7 :
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.2ch.sc/test/read.cgi/tech/1590578921/

8 :
WPFで3D試してみました
Blender+Pythonで描いてるのと同じくらい
気持ち良いです
ほんとうにありがとうございました

9 :
WPFって内部的にはDirect2D使ってコントールとか関係なくいっぺんに描写してるんだよね?
対照的にWinFormsはコントロール一つ一つがミニウインドウ的に重ねてるだけと
以上のことからWPFの方が圧倒的にパフォーマンス良さそうなはずなのにWPFの方がもっさりしてるのはなんで?

10 :
WPFはレイアウト処理がゴミのように遅い
ボックス化を繰り返す、素人でもやらないようなアレな設計

11 :
個人的にはワッチョイ嫌いだからこっち使うわ

12 :
>>11
ワッチョイ無しがよければこっちへ
ふらっと C#,C♯,C#(初心者用) Part141
http://mevius.2ch.sc/test/read.cgi/tech/1544838367/

13 :
WindowsってまともなUIフレームワークがない

14 :
本来UWPがそうなるはずだったんだけどな
一時期、一向に進化しないWindowsのUIに痺れを切らしたMSの.NET陣営が暴走し、Windowsを完全に無視してスクラッチで作られたWPFという奇形を生み出した
その後、WindowsのUI基盤は刷新され開発も早くなったけど、時すでに遅し
結果としてWPFは変な分断だけを残して死亡し、以後モダンなWindowsのUIフレームワークは完全に開発者に見放された

15 :
>>13
まともなUIフレームワークがあるOSって?

16 :
俺言いましたよね、じゃないけど、Win10の登場時に
「Silverlightもストアアプリもあっさり捨てられたのを見せつけられた後で
UWPに飛びつくのはお勉強マニア以外にいるはずがない」と思った。

実際その通りになったね
あの頃これからはUWPの時代だって鼻息荒かった人たちは今息してるかなw

17 :
>>16
ストアアプリは捨てられてないやん

18 :
今.NET(以外でもいいけど)でまともなWindowsのGUIアプリ作ろうと思ったら何使えば良いんだ?

19 :
>>18
winformが鉄板

20 :
>>19
なんかチープにならない?
個人で開発するならこれでも十分だとは思うけどさ

21 :
paint.netはwin32apiをオーバーライドして
実装しているな

22 :
>>20
Windows Formsはチープと言えばチープだし高DPI対応が面倒
弱点が無い鉄板と言えるのは今は無い
自分なら消去法でWPFかな

23 :
>>21-22
ありがと
参考になった

24 :
>>18
Electronだな
完璧で先進的なUIをいくらでも作成できる
ただし無能には作れないが

25 :
どうして、どうして、エレクトロンしないのよ〜
https://i.imgur.com/QZW63vu.jpg

26 :
>>12
ども

27 :
イキってる連中の乗ってる船は必ず沈むw
これこの業界の経験則

28 :
>>20
モダンにしたいならwpfで作って、Mha.AppsとmaterialDesignToolKit当てるのがいいと個人的には思う

29 :
winformsもパネル使ったり枠なくしたりなんかフレームワーク使ったりすればいい感じにならない?

30 :
>>28
MahApps.MetroとMaterial Design In XAML Toolkit
じゃない

31 :
WinFormsでも全部自前でペイントしていけばモダンなマテリアル風に出来るよ

32 :
うちの周りじゃ「ふつうwpfだよな」という雰囲気。
まあmfcはまだあるけど。

33 :
material designカッコ悪すぎやろ
あれは小さい画面ではかっこよく見えるけど
デスクトップアプリだと間抜けに見える

34 :
https://github.com/Kinnara/ModernWpf
Modern WPFもなんだかな
Vistaみたいな派手派手UIはやりすぎだけど、今どきのUIはシンプルすぎやな

35 :
ちなみに見た目にこだわるなら
https://community.idera.com/developer-tools/b/blog/posts/new-vcl-and-firemonkey-styles-in-rad-studio-10-3-1-ja
Delphi/C++Builderが手っ取り早いww
Qtはどうなってるのかしらんが

36 :
>>31
俺はWinFormではそうやってる
しかしペイント使うのは面倒くさすぎ

37 :
>>35
なにこの古くてダサいやつ

38 :
メトロUIに勝手にしてほしい

39 :
>>30
28だけど、それだ

40 :
WPF意外と良いわ
薦めてくれた人有賀豚

41 :
MVVMでしっかり作るとまともなライブラリ無くてな、、、
LivetかPrismとReactivePropertyをMS公式にしてドキュメントしっかり整備すればもうちょい流行るだろうに

42 :
MSによるとMVVMはオワコンで今後はMVUらしいよ
そしてWPFにMVUは来ない

43 :
.NET MAUI自体はXAMLを用いたMVVMもサポートしてる

44 :
>>41
ライブラリがMSから出て無いから俺はMVVMにがっつり取り組むの止めた

45 :
今後はMVUになるってバインディングが遅くて使い物にならないってことか

46 :
> .NET MAUI は Xamarin.Forms の進化版で、
> 今後、MVU と XAML の両方のプログラミング モデルを提供するために拡張されます。

今後はMVUってどこの情報?

47 :
>>46
大本営で言ってるじゃん。
https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/
結構楽しみ。

48 :
>>47
.NET MAUIに移行とは書いてあるけど、MVUパターンにとは書いてないようだけど

49 :
>>48
Part of the vision for one .NET is providing developer choice in the areas of personal preferences so you can be most productive using .NET.
This manifests in which IDE you use whether Visual Studio 2019, Visual Studio for Mac, or even Visual Studio Code.
.NET MAUI will be available in all of those, and support both the existing MVVM and XAML patterns as well as future capabilities like Model-View-Update (MVU) with C#, or even Blazor.
中略
In addition, we are enabling developers to write fluent C# UI and implement the increasingly popular Model-View-Update (MVU) pattern.
MVU promotes a one-way flow of data and state management, as well as a code-first development experience that rapidly updates the UI by applying only the changes necessary.
For more information about MVU as a pattern, check out this Elm Programming guide and this blog from Thomas Bandt.
俺誤読してる?

50 :
本当か嘘かは知らんけど一応まだこれからもMVVMが主力と言ってるじゃん。
MVUは追加という扱い。

51 :
>>47
相変わらずいろんなのが出てきては完成させず放置を繰り返すよなあMSは
これもグダグダになるんだろ

52 :
>>50
同じことだよ
MVVMが旧式のスタイルになったことは事実だし、MVUはReactのようなWebで流行のデザインパターンの流れを汲んでいて.NETに限らず世間の流れに沿っている
MVVMを実践してきたような真面目で神経質で意識の高い人達が、時代遅れのパターンであることを自覚しながらなおMVVMを使い続けるコンプレックスに耐えられると思うか?

53 :
流行かw
できれば一生関わりたくない世界だなw

54 :
>>50
本腰を入れると受け取ったけどな。ますますポピュラーになるMVUを使えるようにするぞ、って言い方のような。
今までのスタイルから、突然はしご外す気は無いから安心しろよ、怒るなよ、っていう方向のように読めるんだが。

55 :
>>54
実際はそうなると俺も思うけど、一応大本営発表ではまだそこまで言ってないということ。

56 :
>>55
なるほど。確かに字面ではIn additionとかいう言い方か。
そっちが正しそう。すまんかった。

57 :
そうはいかんね

58 :
Unity と XNA と WPF の違いについて教えてください

59 :
>>58
まずこんなところで説明しきれない
キーワードわかるものは自分でググれ

60 :
スキャナを起動し画像を保存したいです。
機種は決まっているので取り込むまでを自動でやりたいのですが
サンプルが見つからないです
お詳しい方ご教示いただければ幸いです。

61 :
スキャナを起動し画像を保存したいです。
機種は決まっているので取り込むまでを自動でやりたいのですが
サンプルが見つからないです
お詳しい方ご教示いただければ幸いです。

62 :
スキャナを起動し画像を保存したいです。
機種は決まっているので取り込むまでを自動でやりたいのですが
サンプルが見つからないです
お詳しい方ご教示いただければ幸いです。

63 :
スキャナを起動し画像を保存したいです。
機種は決まっているので取り込むまでを自動でやりたいのですが
サンプルが見つからないです
お詳しい方ご教示いただければ幸いです。

64 :
TwainDotNet かな

65 :
ありがとうございます。
とりあえずTwainDotNetで調べてみます。 

66 :
大事なことだからって繰り返し過ぎワロタw

67 :
まだ22歳の学生社長が得た、23億円の「使い道」
あの橋本環奈をCMに使うバイトアプリの雄
https://toyokeizai.net/articles/-/319511
中学時代の車いす生活から、17歳で起業するまで
https://www.advertimes.com/20200130/article306925/
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
https://roboteer-tokyo.com/archives/14840
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life
アプリの視聴率がわかる 高専卒起業家の独創力
https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
https://sogyotecho.jp/glowship-adachi-interview/
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
https://foodfun.jp/archives/3490

68 :
Windowsフォーム使って開発してる(C#4.0/NUnit)んだけど良いテストの見本プロジェクトとかないですか?(参考になるサイトでも構いません)
なんか画面とくっいてるところが思ったようにテストできなくて全然書けない

69 :
ないよ
WinFormsなんて基本ドカタ案件なのでテストなんか書くわけない
人力でクリックしてスクショ撮ってExcel方眼紙に貼るの

70 :
コードビハインドにビジネスロジックゴリゴリ書いてるなら無理だな

71 :
マジすか…
土方案件(プロパー)なのは事実でテストはあるけど一部のロジックだけで何ら役に立たないゴミなんだよなあ
Form内にゴリゴリにロジックが絡まってるし
Singoletonを多用してインターフェイスを使うという概念が無いからどうにもならんし
見なかったことにするわ

72 :
>>68
udemyのC#でドメイン駆動開発ってやつがテストにも言及してて自分的には分かりやすかった
動画は有料だけどサイトでも解説してるからそっちを見てみたらどうだろう

73 :
WinFormはVB6の延長線上にある感じだな。
Formモジュールにビジネスロジック書いて
複数のFormで共通する処理があれば標準モジュールに書く。
Classなにそれ喰えるの?

74 :
>>69
ちょまどさんですね判りますω

75 :
世界全体だとC#って5位くらいの位置づけっぽいけど
日本だけで言うと2chの勢いなどから推察するに3位くらいには使われてるとみて良いの?

76 :
分野による

77 :
2chの勢いがなんの参考になるんだ

78 :
C#は基本ホビーの人向けだよ
前はwin必須だったけど今はlinuxOKになったので幅広い分野に向けて手を広げてるはずだけど全然思ったように広がらない
既存のものをリプレイスするだけの利点は今のところないから移ってくる人が少ないんだと思う
嫌な特徴としてOSSが弱い
異常に弱い
何かやろうとするとOSSのライブラリが全然充実してないことに気づく
そういうのはpythonやjsに任せておけばいいのかもしれないけど悲しい
2002年から使い始めたけどC#使ってる人に初めて会ったのは数年前…
しかも高校生
田舎のアマチュアだから仕方がないのかも
java python rubyの勉強会は田舎でも行われてるけどc#は気配がない

79 :
c++
java
javascript
これらは業務の人が使ってて田舎でも求人がある
あとVB6 python 意外なことにperlとか
何に使ってるのかは知らない

80 :
>>78
自分はMS Officeとの親和性の高さからC#(というかMicrosoftの開発環境)を使っている。
 結局ユーザーが使うのはWindows10上でWord、Excelであり、それのドキュメントを食って処理が始まる以上、OSSの中途半端なライブラリには頼れない。

81 :
>>78
OSSのライブラリが充実してない?具体的に比較してみて

82 :
>>79
VB6は過去のレガシー案件だろ

83 :
OSSが充実してないのは何となくわかる
中途半端に開発止まってて全機能網羅してないC#ラッパーとか結構見かける

84 :
C#erを名乗るおれですら最近はPython使ってるもんね
機械学習系のことやるならPythonになっちゃうんだよなあ

85 :
C#というよりはWindowsの問題だと思うなあ
俺もC#でプログラミング覚えて仕事でも一番よく使うのはC#だったけど、Web系に行ってからはWindowsの壁を感じるようになって、今では全く使ってないわ
C#な人って出来合いのものを活用するという考え方が薄くて、わりと自分でコード書いてなんでも解決しようとする人が多いように思う

86 :
携わる分野が変われば言語も変わるという普遍的な話なだけでは

87 :
Pythonはライブラリを組み合わせるだけだからつまらないのがな

88 :
DropboxはPythonの負債に四苦八苦してるよね

89 :
NuGet使ったら「訳のわからんもん使うな」と上司と喧嘩になった

90 :
訳のわからんライブラリを使うなってのならわかるけど、NuGet自体を使うなってのはキチガイ

91 :
そこでPacketですよ

92 :
NuGetで持ってくるライブラリ次第だな
MSや大手メーカーならそれなりに信頼出来るけども、
個人で作ってるライブラリは実用例が無いと信頼出来ないし
あとライセンス

93 :
linux屋がいないとossは発展しづらい
linuxのc#は比較的最近になるから

94 :
CUIで作るとして何が欲しい?

95 :
C#で作るのにCUIとかゴミ

96 :
じゃPowerShellはゴミだね

97 :
荒らしはスルーで

98 :
かまってちゃんもスルーで

99 :
>>85
わかる。車輪再開発ばかりだわ

100 :
Windowsは伝統的にCUI環境が貧弱で、UNIXのように既製の小さなコマンドをちょこちょこっと組み合わせてやっちゃうという風にはいかないことが多かった
しかもクライアントアプリの開発が多く、システムに入っているコマンドに頼ると環境に依存しやすいために忌避されやすい
結果として、インプロセスのコーディングに頼る文化ができたんだろうね
必然的に細かい要件がコードに入り込みやすく、OSSにできるような汎用的なものが生まれにくい

101 :
なぜ最後の文の結論になったw

102 :
OWINがあるから、CUIでもweb i/fは作れるから
と思ったんだけどね

103 :
>>94
dockerでフィクスチャ作るような奴欲しい

104 :
WindowsではOSSが少ないのではなく、64ビットのWindows7が浸透してきたころから
OSSが減ってきているって感じじゃないかな
Win7 64はアプリでもなんでも署名が必要で、特にドライバは署名が正しく行われて
いないと嫌がらせのような開発者モードでしかシステムが動かない
署名が悪いとは思わないけど、署名を取得するには個人の開発者ではまかなうのが
大変なレベルのお金がかかるし、ドライバ作れないのであれば古い機器を有効活用
したりアイデア機器とかも作れないしでOSS作ってくれる層からみるとつまらない
Androidもユーザが自由にやれていたころはOSSが多かったけど、どんどん変な縛りが
増えてPlayに怪しげなS/Wは増えたけどOSSのプロジェクトはどんどん減っている
ちょっとしたアプリなら今でも作れるよねっていうのは分かるけど、大型のOSS
プロジェクトをやってくれる人は、意味のない縛りの多いプラットフォームではやってて
面白くないからWindowsのOSSをどんどんやめていってるんじゃないかな

105 :
妄想おつ

106 :
Microsoft自体がOSS推してるのを知らないのか?

107 :
開発リソース割けなくなった製品の姥捨山として考えてるイメージ

108 :
>>107
現実を見なさい

109 :
質問だけど
Windowsアプリ作るにあたり
VisualBasicを使っちゃいけなくて(好まれなくて)C#を使うべきっていうのは
どういう理由からですっけ?

110 :
>>109
古いからって理由だと思う

111 :
でもマイクロソフトも新規機能は付けないって言ったり
vbオワコン感あるね
今からやるのは絶対避けた方がいいな

112 :
そうざますかなるほど

113 :
>>109
オブジェクト指向言語に寄せていくとC#とかJavaみたいなシンタックスになっていくって聞いたことある。VBみたいな書き方は向いてないんだって。

114 :
自分をオブジェクト指向だと思い込んでる手続き型言語のイメージ
クラス定義をしてるというよりも、クラス定義をする命令を書いてる感じがする
End句とか特に

115 :
ごめん
意味不明な事書いた

忘れて

116 :
>>113
なるほどVBはオブジェクト指向に対応してないと。
これですっきり理解できました。

117 :
>>116
納得しちゃダメw

118 :
誰得

119 :
IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip

120 :
ネイティブアプリを作ってるのですが、
パスワードがかけられたファイルをオープンしたりしようとしています。
コンパイルされるからパスワードはコードにリテラルで書こうと思っています。
が、
c#のコンパイル物の逆コンパイル性はかなり容易なのでしょうか?
Javaはコンパイルしても逆コンパイルで全部戻せれるそうですが。

121 :
>>120
C#の逆コンパイルはフリーウェアでほぼ完全にできるレベル

122 :
>>120
一瞬で逆コンパイルできるから、ソースにパスワード埋め込んだ状態で配布するとか論外

123 :
>>120
てかVisual Studio使ってるなら簡単に逆コンパイルできるの知ってるやろ?omnisharpですら最近できるようになったし、昔からilspy等はよく使われてる

124 :
パスワード判定アプリだけc++で書いてc#からキックするって手もある
わかるやつにはわかっちゃうけど

125 :
>>120
クライアントに配布する時点で秘匿は無理だと思え

126 :
ここもVBA質問スレのレベルかね

127 :
そもそもネイティブアプリって何さ?

128 :
>>127
Webアプリに対してクライアント側だけで動作するアプリ、って意味合いでネイティブって言ってるんだろな

129 :
>>126
重複の上テンプレさえ不完全にされた失敗スレに何を期待しているの?
>>127のようにグーグル検索すら使えない人が来るのに

130 :
パスを見られたくないのなら認証されたユーザーからの要求があった場合にはサバ側でパス保護ファイルを開いてそのバイナリをネットで送るって形にするしかないな

131 :
そんな糞めんどくさいことしなくてもインストール時か初回起動時に
ユーザーにパスワード(っていうか復号コードだと思うけど)を入力してもらえばいいでしょw

132 :
Ruby on Rails では、
暗号化キーのmaster.key は、Github へ保存しないけど、
暗号化済みのcredentials.yml.enc は保存する
それを、master.key で復号すると、YML 形式で、下のような設定が書いてある
aws:
access_key_id: 123
secret_access_key: 345
つまり、暗号化済みの文字列は、公開しておいてもOK。
キーが分からないので、復号できないから
逆に、キーは公開したり、アプリ内に含めるとダメ!

133 :
例外って一度考え始めちゃうとめっちゃ難しいな
色んなサイトのコードとか見てると例外を乱用してるようにしか見えないものが多いように感じる(特にネットワーク関連)
だからといってどこを例外にすれば正しいコードになるのか全然わからん
やっぱり例外処理は全く使わないで済むようにくらいの勢いで想定される例外を自力で検出するのが一番良いんだろうか

134 :
>>133
なんか基準があるはずよ
落ちるのだけはやめてって言われてるなら
GUIの操作するメソッド全部でcatchしてメッセージでも出さんといかんじゃん
それとも「ああ、死んじゃっていいよ」って言われるかもしれんし
この場合は何もしないし
「ログにだけ出して」
ってのもあるし
そもそも各クラス例外を出す方針に一貫性がない
開こうと思ったファイルが開けないときの動作は普通は例外にしたくないけど例外が飛んでしまうときはcatchしないといけないわけで
まあ、個別に対処が必要?

135 :
Rubyの話をする奴は、ちょっと話が違うとか理解することはできんのかな。

136 :
>>133
例外は、Catchしたとて復帰不可能なものはアプリケーションエラーにして落とすのに使ってるかな。
そのメソッド内で完結できるならばCatchするというか。
後始末してから結局throwするケースもあるけど。
上っ面がアプリケーションからバッチ処理に変わっても同じように使える事、ぐらいを想定して例外処理書くと統一感出ると思うよ。

137 :
>>134
自作だからその辺りの基準はないなあ
とはいえ世間でも基準は割とバラバラなのか
今回作ってるのはネットワーク関連のクラスなんだけど、初めて手を出す分野だからどれが個別に対処できるかは正直よくわかってないんだよね
参考にしてる資料に忠実に作ったら、ちゃんと動くんだけど例外処理だらけなのが見ててすごく気持ち悪くて、これで本当に正しいのかわからなくなったというか
>>136
使い分け方参考になります
あまり考えたくなったけどちゃんとしたものを組むなら例外の内容毎にきちんと仕分けしなきゃだめなのか・・・なんか逆にどんどん複雑になりそうで胸が熱くなるな
こう考えると寧ろサンプルはシンプルに纏まってて良いものに感じてきたわ
例外は普段最低限しか使用しないものだからイメージできなかったけど二人のお陰でなんとなく輪郭が見えてきた気がする、ありがとう

138 :
例外は1つ残らず握りつぶせ

139 :
>>137
例外って究極のgotoだからね。
その場でやっつけないなら慎重に受ける場所とその後の動きを検討しないといかんよ。
毎回その場でやっつけて、エラーとして呼び出し元に帰すって方針ならそれはそれでいいかも知れんけど、
誰かキャッチするだろって方針で、続行不能だからと適当に例外吐いて落とさせてると、あとで困る。特にバッチ処理。

140 :
https://ufcpp.net/study/csharp/misc_exception.html

141 :
>>135
そいつはこの板のあちこちに出没する有名な荒しだからスルー推奨。
いくら指摘しても自分に都合のいい話しか目に入らないから相手するだけ無駄で、スレを汚すことになる。

142 :
>>133
エラーハンドリングの基本的な考え方はこのシリーズ読むと良いと思う
https://docs.microsoft.com/en-us/archive/blogs/nakama/293

143 :
>>138
これはネタで書いたんだろうけど、例外は適切な場所で握りつぶすのが大事だよな。
「知ってる例外はcatchするけどあとはスルー」ってのが最悪。

144 :
色々資料をご紹介いただきありがとうございます
つまり、例外が大好きな.NETを呪いながら潰せる例外はメソッド内で潰し、潰せなければどのような例外があったかをきちんと調べられるようにすれば良いわけかな
今回は例外が発生してもクラッシュせず、かと言ってメソッド内で処理する事はできないようにする予定なので、例外が発生する可能性があるメソッド全てに例外の種類を特定できるような戻り値を与える方向で進めていく予定でやってみます

145 :
例外が出る処理はすべてcatch書いて適切な処理を書けばいいだけ。簡単。

146 :
>>145
どこでどんな例外が発生するかを全部把握して漏れなくやるのはそれなりに大変だなあ

147 :
>>146
かといって、Javaの検査例外の仕組みはちょっとフットワークが重たくなるんだよな。
あれ自体は悪い仕組みじゃないどころか、発想としては初期の割に進んでたんだけど。

148 :
全ての例外をcatchすればいいんじゃね?

149 :
後にも先にもJavaしか採用していない悪い仕組みだよ
呼び出し階層の途中をすっ飛ばして高層階と低層階の間で例外の関心が繋がるという、
高階関数やフレームワーク等において普通に存在する極めて重要な例外のユースケースを検査例外は無視している

150 :
うーん、むしろ、例外が漏れるケース、throwsを書かざるを得ないケースってのを減らすべきだと俺は思ってたけどなぁ。
低層階で発生したものを高層階でハンドリングする事が正しいとはあんまり思わんな。
IOのExceptionみたいな、高層階側ではどうしようもない事を上げられても困ると思う。

151 :
検査例外ほんと楽

152 :
けんされいがいって何だろうと思って調べたんだが、素人目には良い仕組みに見えてしまった
ただ例外を前提にするなら、もはや例「内」のような気が

153 :
Anders Hejlsbirgの検査例外に対する批判
https://www.artima.com/intv/handcuffs.html
検査例外は失敗、とっくの昔に結論出てる

154 :
高層側でどうしようもない例外が上がってきてるならそれは下層側が間違ってるだけでは

155 :
>>149
>後にも先にもJavaしか採用していない悪い仕組みだよ
Swiftで採用されてるよ
シグニチャによって呼び出し側にエラーハンドリングを強制する方法自体は悪い仕組みではない
例外ではないがRustも考え方としては同じだし>>142の赤間さんの考え方もベースは同じ

156 :
チェック例外の発想は悪くないしいい機能だと思うけど、Javaのやりかただとバージョニング諸々で破滅的な事になりがちだから、静的解析なりなんなりのツールで確認すべきかなーっていう主張に読めたんだけど?

157 :
何の例外がくるのか意識してかけ派なのか
何の例外も気にするな派なのか
そのどちらであっても書き手の例外テロに強制的に付き合わなければならない
そのごった煮であることを受け入れた上でプロジェクトのスタンスを決めなければならない

158 :
>>155
Swiftの例外宣言は「例外を投げる」という指定ができるだけで、型の指定はないよ
>>153の話で言えば、あらゆるメソッドにthrows Exceptionが付けられて破綻した状態を正しいものとして受け容れてるわけ

159 :
>>150
呼び出し階層が関心事の包含関係を反映しないケースは普通にある
ラムダなんかいい例で、君は x.Select(y => y.Hoge) でSelectがHogeの投げる例外を知っていなければならないと言ってるんだよ

160 :
>>144
例外をエラーコードに変換して何の意味があるのw
例外の発生個所でそれを適切に処理できないなら何もしなくていいでしょw
後々のメンテナンスを考えて、あえてcatchして再スローするコードを書いておくのはありだとは思うけど。

161 :
>>149
関心が繋がるって意味が分からないんだが、要するに因果関係があるってこと?

162 :
>>159
俺の主張は違うよ。
Hogeは例外を投げてはいけないと言ってるつもり。

163 :
>>162
例外を投げることを主張するばかりか、それを上位で処理することを強要する仕組みに賛同してなかったか?

164 :
>>163
してないよ。
上位で拾うならアプリケーションを落とすぐらいしかやりようがないって言ってるんだけど。
throwsを書かざるを得ないケースの逆の、書かないケースってどう言う事かわかる?
そのメソッドでは例外が発生しないって事になってるって事だよ。

165 :
ホント役に立たない議論好きだな
ここから出ないでずっとやっててくれ

166 :
> IOのExceptionみたいな、高層階側ではどうしようもない事を上げられても困ると思う。
どんなに対処してもFileNotFoundExcpetionって防ぎよう無いけど例外受けてUIでエラー表示とかもしないってこと?
低層でexceptionを捕まえて実装者定義の情報に変えてそれでエラーハンドリングしろってこと?

167 :
会社の共有フォルダに配置されており、パソコン起動時に実行されて、特定の時刻になったらトースト出すプログラムを作りたいのですが、どのようなプロジェクトが向いていると思われますか?

WPFのプログラムを起動して5分おきに時刻をチェックし時間になったらトースト通知という仕組を考えたのですが、タスクバーに常駐してるのもなぁと思いまして

スマートな方法がありましたらご教示下さい

168 :
誰がトリガーなのかイマイチわからなかった

169 :
>>167
タスクスケジューラとpowershell

170 :
>>169
100台近くあるクライアントにタスクスケジューラは辛いです

171 :
>>169
ワラタ
全部そいつでいーじゃん

172 :
クライアントパソコンは起動時に実行ファイルを実行出来る配布済みのものです
実行時に実行ファイルを常駐させる他ないかなと思いつつも適材適所のプロジェクトがあればお伺いしたいなと思っております

173 :
>>160
.NETがcatchを強要するようなオブジェクトなんかを用意するから悩んでる
結局その場で何もできないなら多くのサンプルコードのように、catchした例外内容をコンソール上に表示する(または再スローする)だけの形が正解でいいのかな?
呼び出し元にも例外処理させるのはあまりやりたくないけどこういうのは仕方ないのか

174 :
>>172
別にWindowsのスタートアップに登録して常に起動させておく方法でも問題ないと思うけど、
どうしても嫌なら既に指摘されてる通りWindowsのタスクスケジューラーのタスクに登録すりゃいいでしょ。

ユーザーにそれを手動でやらせろ、と言ってるわけじゃなく、
あなたが作るプログラムがそれをやればいいってことね。

175 :
.Net介してタスクスケジューラにアクセスできるみたいだし無理ではないんじゃね知らんけど

176 :
むしろ呼び出し元にも例外処理させるために例外があるんだろ

ファイル書き込みをオブジェクトに任せて書き込もうとしたら書き込めなかった
その後の処理を呼び出し側に書かんでどうすんの?

177 :
例外をcatchしたらログに吐き出して上位にthrowすればいいじゃん

178 :
Oh...深く考える必要はなかったってことね
まあ例外に関しては立ち止まって考える機会を得れて十分に学習できたからこれはこれで良かったわ

179 :
>>149
>呼び出し階層の途中をすっ飛ばして高層階と低層階の間で例外の関心が繋がるという、

それは例外機構そのものの問題だと思うがな。
検査例外はそれを静的にチェックするからすぐ目に付くけど、それ以外の言語は
その関係が動的暗黙的で表に見えないだけ。ある意味よけい悪い。

180 :
>>173
何もしないならその場でcatchしちゃだめだって
ログ出力のような共通処理は集約例外ハンドラに任せる

181 :
まず、大原則を覚えてください。

よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。

もう一度繰り返します。

よほどのことがない限り、アプリケーションで try-catch を書いてはいけません。

もう一度(ry、すみませんしつこいですね^^。でもこれ、めちゃめちゃ重要なのです。
https://docs.microsoft.com/en-us/archive/blogs/nakama/net-part-1


賛同するかどうかは別だけど
これがMS推奨の定跡

182 :
かこいー

183 :
>>181
嘘だよ
まず、アプリケーションをストップさせたくないときはcatchしないと駄目だよ

そもそもファイルがない程度で例外出しやがるお前(Microsoft)みたいなのがいるから足並みが揃わないんだろうが
そもそもみんな例外の扱いに困ってんのはお前(Microsoft)のせいだお前(Microsoft)の

それと例外自体が造り手の思想依存であって
飛んできた例外に例外であることの正当性の保証はない
みんながみんな好き勝手飛ばすし
正当な処理結果なのに例外としてcatchさせるような作り方もできる
こんな状況なので方針というのは作れなくて1つ1つのメソッドでどういう動作にするか考えなくてはならない

184 :
>>180
キャッチしないとその場でクラッシュするから・・・
例えば、通信先の接続に失敗しただけで例外になるからこれでクラッシュするのは避けたいって時とか
そうすると色々教えてもらった結論としてはcatchしてから何もせず再スローするしかないと思ったんだよね

でもやっぱり気持ち良いものではないから代替案があればそっちにしたいけどいかんせん俺の知識が足りない

185 :
>>183, 184
なんなんだよもう
脊髄反射でレスする前に一通り読めよ

リンク見つけられないのかもしれないからシリーズのURL貼っとくわ
https://docs.microsoft.com/en-us/archive/blogs/nakama/293
https://docs.microsoft.com/en-us/archive/blogs/nakama/net-part-1
https://docs.microsoft.com/en-us/archive/blogs/nakama/net-part-2
https://docs.microsoft.com/en-us/archive/blogs/nakama/net-part-3
https://docs.microsoft.com/en-us/archive/blogs/nakama/net-part-4
https://docs.microsoft.com/en-us/archive/blogs/nakama/netjava

>>153がリンク貼ってるAnders Hejlsbergも同じ考え方やで

186 :
>>185
すまん、集約例外ハンドラが全然理解できてなかったから頓珍漢なこと言った
ちょっとちゃんと読ませてもらうわ

187 :
>>183
FileNotFoundExceptionが出て欲しくないなら
きちんと事前にファイルの存在を確認すれば良いだけだろ

188 :
ファイルの存在確認してからファイルオープンの間までにファイルが消えることがあるんですが…

189 :
ライブラリ内、関数内でcatchして、ファイルが無かった旨の結果を返すか、
(必然的に、成功、失敗のいずれかと付随する結果を持つ結果オブジェクトを返すことになる)
もしくは誰もキャッチせずアプリケーションエラーにしてアプリごと落としてしまうのが良いんじゃないの?
要は、ファイルが無い場合ってのは、それをもってなにか処理したい場合、正常系の1パターンであって、無理に救う異常系ではないと思う。

190 :
結局どの階層でもファイルが見つからない状況に興味がなければ
そのアプリは落ちるしかあるめえなあ

191 :
>>189
落とした方がいいかどうかなんて
そんなのお前が決める問題じゃないじゃん

192 :
作るメソッドが例外を飛ばしまくるくせに
ドキュメントを書かないなんて奴は最悪で完全に制御するためには
メソッドの中のソース読んで例外が今回の仕様にマッチするかどうかまで調べないといけない現実
ファイルがなかったから飛んだ例外なのかファイルを開いて編集できなかったから飛んだ例外なのか
造り手はそれに気を使う義理はないが

193 :
全部catchしてそのままthrowが基本。

194 :
そのまま投げるならキャッチする必要ないけど?

195 :
>>194
catchしないとそこで止まる

196 :
キャッチされなかった例外はそのまま上位へ伝播したとおもったが

197 :
>>196
それであっているしそうしないとthrowの意味が半減する
catchして何か処理したうえで再スローするのならともかくそのままthrowって言っている>>193とそこで止まるって言っている>>195は例外処理の基本すらわかっていない

198 :
いっぱいとらいきゃっち書いてそう

199 :
多分Java屋崩れ

200 :
>>199
検査例外の対応がそうするのが主流ってことか?

201 :
catchしてそのまま何もせず再スローはメンテを意識して書く場合はあっていいよw

// ここで○○が××の場合HogeExceptionが発生
とかコメントで書くよりよっぽどいい。
記憶力抜群の人はどうだか知らないけど、だいたい忘れちゃうんだよ。
どこでどんな例外が起こる可能性があるかなんて

202 :
何もしないで再throwにしても
イベントログに描き込んだり
ログファイルに出力したり
黙ってても出来ることはある

203 :
>>201
再スローする時にthrow exp;とかやってるあほなJava屋上がりを見たことがある

204 :
try{
....
}
catch{
throw;
}

205 :
>>202
ログ出力してるのになにもしてないとか言うと話がかわるんだが

206 :
>>201
たしか標準のドキュメントコメントに例外あったはずだか、それより良いと?

207 :
設定ファイルを触っておいて
何もしてないのに起動しなくなりました
って言う奴と同じだなぁ

208 :
iniファイルがよく壊れるソフトの開発者に限ってユーザのせいにするんだぜ

209 :
例外処理のものっそい便利なライブラリとかないん?

210 :
- エラーは戻り値じゃなく例外を投げるべき
- 検査例外は糞
- 想定しない例外が発生したら潔くプロセスを落とすべき

声が大きい例外君はこんなのが多いよな

211 :
>>210
ファイルが無い程度でふっ飛ばされんのかよ
だから夢みんなよ
例外なんて書くやつの匙加減一つでとんでもない仕様になりうるっていい加減理解しろ
誰でも好きに書けるんだからそらそうなるだろ

212 :
業務要件次第って思うんだが。。
要件詰めてないからブレるだけで

213 :
例外ガーって吠えてる人が何を勘違いしてるのか少し分かった気がする。
彼は結果に過ぎないものを原因だと錯覚してるんだな多分w

問題領域が複雑だから(原因)煩雑な例外処理が要求される(結果)のに、
彼は例外処理が問題を複雑にしているという逆立ちした認識に陥っている。

もっと根本的にそもそも安全側に倒す意義が分かってないような気もするけどw

214 :
x 例外ガーって吠えてる・・・
o 例外が、って吠えてる・・・

正しい日本語を使いたまえ。

215 :
頭悪そう

216 :
過学習くん

217 :
トーストとかポップアップヒントとかネットに転がってるサンプルプログラムを動かしても無反応です
ひょっとしてOS側で機能制限されてるのでしょうか?
一年前は普通に出てた気がするので

なお、コードはここ様とか参考にしました
https://www.ipentec.com/document/csharp-show-popup-message-on-tasktray

218 :
これはひどい、>>214が

219 :
>>217
イベント設定した?
public FormMain()
{
InitializeComponent();
button1.Click +=button1_Click;
}
それでも出ないのなら自分でなにかOS設定でやらかしている

220 :
http://pineplanter.moo.jp/non-it-salaryman/2017/06/01/c-sharp-tasktray/
https://dobon.net/vb/dotnet/control/showtasktrayicon.html

221 :
>>217
NotifyIcon にアイコン設定した?

222 :
StreamReader から文字列サーチして先頭の Position 得るライブラリとかありますか?
改行ないので ReadLine() は効かず ReadToEnd() はメモリが足らん状況です

223 :
改行無いならバイナリでバイト数指定して読め

224 :
そういうのを作ること自体が面白いと思えないとつらいねw

225 :
>>222
バイト位置を更新しながら、バイト列を繰り返し読む。
読み込んだバイト列の中からターゲットのバイト列の最初のバイトを探す。
最初のバイトにマッチしたらそこの位置からターゲットのバイト列の長さだけ読み込んで、
バイト列がターゲット文字列に一致するかを確認する。
一致すればそこの位置を返す。

226 :
そういうのは自動テストやってるなら楽しいが手動でテストしなきゃいけないなら作りたくない

227 :
>>225
初心者相手だとそれだね
手ぬるいと感じてしまう自分はおかしいんだ

228 :
>>226
プログラムというのはそういうものじゃないかな
アルゴリズムを自分で考えるのが面白いと思えないならつまらないコーディング生活になる
自分の頭で考えるのが嫌だったり忍耐力が皆無ならまあ正直向いていない!
どーしても自分の頭でアルゴリズムを考えたくないならググるしかない

229 :
>>221
アイコンをブランクにしておりました
設定したら動作しました
ご指摘ありがとうございます

230 :
アイコン表示されてないなら無反応は仕方ないなw

231 :
>>213
例外は「安全側に倒す」とは真逆だと思うんだがなぁ。
緊急停止ボタンみたいなもんだけどそれは機器にとって安全な停止方法じゃないように。

232 :
アルゴリズムなんか正直ネットでいくらでも手軽に使えるのが落ちてるからなあ
俺にとってプログラミングなんて手段でしかないから結局作りたいものを好きなように作ってる時が一番楽しいわ

233 :
N=13ぐらいのおねえさん問題をC#で解いてくれ

https://youtu.be/Q4gTV4r0zRs

234 :
バイト列で文字列検索するとコードページによっては死ぬ

235 :
>>233
量子コンピュータならなんとかなるはず!

236 :
>>235
最後まで見た?w
クヌースの教本の4Aに出て来る
ZDD,BDDアルゴリズムを使うと実用時間内
に解ける。

開発したのは北海道大学でソースも公開されているよ〜

237 :
>>233
正しい数え方
https://www.youtube.com/watch?v=R3Hp9k876Kk
http://www.edu.kobe-u.ac.jp/istc-tamlab/cspsat/pdf-open/cspsat2_mtg203_iwashita.pdf

238 :
>>236
https://www.nii.ac.jp/userimg/openhouse/2013/lec_minato.pdf
https://art.ist.hokudai.ac.jp/d/minato20170627.pdf

239 :
嫌、知ってるよ。著作も持ってるしw

240 :
なんでお前が返事してんの

241 :
なんでだろぅ。
レスアンカーがついてるからだな

242 :
お姉さん問題って、北大の湊教授だろ
確か、Ruby 用のモジュールもある

243 :
C#で年月日を取得してその日が満月かどうか(満月でなければ月齢)調べるライブラリを教えてください

244 :
解決しました
https://stackoverflow.com/questions/2958418/pyephem-sunrise-sunset-time-calculation-equivalent-in-c-sharp
https://www.nuget.org/packages/CoordinateSharp/

245 :
こういう病気なんだろうな

246 :
phoon

247 :
Programクラスの中にあるスタティックメンバって、他のオブジェクトからProgram.Propみたいにアクセスできないの?

248 :
>>247
むしろ何でできないと思った?

249 :
>>247
できるでしょ
Programクラスってのが何を指してるかよく分からんが
https://dotnetfiddle.net/yyKYKz

250 :
ごめん、本当にできた
ネームスペースが違ってただけだった、ほんとすまんかった

251 :
最近プロジェクト変わってC#触り始めたんだけどみんななんでMSDNの説明理解できるの
マジでたまに8割くらい何言ってるかわからん

252 :
俺も英語は読めないわ。
機械翻訳は意味わからんし。

253 :
MSDNの日本語版は日本語の様に見えるが日本語じゃないな
英語版の方が意味が判る

254 :
MSの技術をMS公式資料だけで理解できる人なんていない。
日本語訳は糞だし、そもそもオリジナルの英文からして糞らしい。
MSDNに限って言えば載ってるサンプルコードが参考になるくらい。

255 :
英語の方がわかりやすいっていうのすごいわかるわ
Javaから来た人間にはとても厳しい
みんな動作の検証繰り返してなんとなく仕様理解してる感じなの?

256 :
C#のリファレンスというかMSのリファレンスは
他に比べるとかなりわかりやすいほうだぞ
MSの外の世界に出るとありがたみがわかる

257 :
JAVA屋はJava世界にお帰りなさい。
二度とこっちくんな

258 :
ひでぇーそんなこと言わんといてや

259 :
物を作る=ツールの使い方と、ライブラリーの
探し方でマウント取る奴らだからな

260 :
マウントはどうでもいいが
Javaの話を敢えて出す意味は無いな

261 :
>>251
MSDNって古いドキュメントの方じゃない?最近はdocsだと思うけど…見るとこまちがってない?

262 :
MS関連の開発は分野が広がり過ぎてMSDNの頃に比べりゃ雑なドキュメントが目につくようにはなってるけど
割とポジティブなニュアンスで「あるだけマシ」みたいなところはいまだにあるからな

263 :
>>261
docsであってる!名前間違ってたや

264 :2020/06/13
なんでもdocsだしな。最近。
まあ確かにあるだけマシだけど、本格的に何言ってるかわからんは増えてきた印象。

マルチスレッドプログラミング相談室 その9
2ちゃんねる互換P2P匿名掲示板の実装を考える 1
初心者の作ったプログラムにありがちなこと
米国国防省の標準高等言語エイダ(Ada)を語れ!
Java入門・初心者質問スレ Part.7
テストを書いてからリファクタリングなんてのは幻想
■特許庁新システムを作る■
任天堂「今後C++は捨てJavaScriptで開発していく」
Perl初心者スレ(マジレス回答)
Pythonのお勉強 Part60
--------------------
情けは人の為ならず
DearDream & KUROFUNE part3
【CLAMP】東京BABYLON 22
Gジャン狂の詩 その30
WHITESNAKE Part38
【総合】USHIPHOPを語るスレpart.3
FF5総合スレ part185【IP/ワッチョイ】
☆★★★  森本梢子 44  ★★★★
昭恵と大分の神社でデートしていたドクタードルフィン「コロナは物質じゃなくてエネルギー体。いくら隔離しても何もない空間から現れるの」 [645130459]
【高出力】 怪しいLANアダプター総合5 【WEP解析】
PENTAX KP part 18
【24インチ】HP LP2475w その7【H-IPS】
X JAPAN THREAD SHOCK #7511
国民年金や健康保険の支払いが苦しい喪女
27〜29歳職歴なしの就職活動 160【職歴なし】
☆スロ板住民の雑談★7421 🇯🇵×🇧🇪×💩
貨幣論・貨幣哲学
【バーチャルYouTuber】.LIVEアイドル部アンチスレ#8317【アップランド】
ゲスの極み乙女。16
iPhone 質問スレッド part36
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼