C#, C♯, C#相談室 Part95
レス数が950を超えています。1000を超えると書き込みができなくなります。
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part94
http://mevius.2ch.net/test/read.cgi/tech/1492843013/
■次スレは>>970が建てる事
建てられない場合は他を指定する事。 コンソールアプリでasync/awaitを初めて導入しようとサンプル書いて
「どおじてブレークポイント貼っでもがっでにアプリ終了じぢゃうのおおお」と
一時間くらい泣きそうになってた頃の自分を思い出した >>861
Main.cs(11,9): error CS0155: The type caught or thrown must be derived from System.Exception
catch(Hello e)ってなに? >>861
throw new Exception(); ルール無視の書き方して動かないって文句言うって幼稚園児か try使った時にエラーの受け取り方がわからないんだよ
mainで使った時にどうエラーを受け取ればいいのか、0の除算したcatchで処理終了しないでランタイムエラーの方で止まってるから >>868
確認したいだけならint x = 10 / 0;を消して>>863のthrow new Exception();を入れてcatchの(Hello e)を消せ
何見ていたらこんなあほな書き方になるんだ Main云々以前にそもそもtry句での引数無しthrowも定数ゼロ除算もコンパイルエラーだし
ぶっちゃけ開発環境上でC#書いたことがあるのかも怪しいレベルだなコレ… >>861,868
こういうことやりたいんだろう
using System;
namespace Hello
{
class Hello
{
static void Main()
{
int a = 10, d = 10;
try
{
a = a / d;
}
catch (Exception ex)
{
Console.WriteLine("Hello.Main()で例外が発生");
Console.WriteLine("エラーメッセージは「{0}」です", ex.Message);
Console.WriteLine("エラーが起きたのでプログラムを終了します"); return;
}
Console.WriteLine("終了しました"); Console.ReadKey();
}
}
}
usingの下なのにnamespaceもないしVisualStudio使ってちゃんと基本からやれ。ふらっとの初心者よりもひどい
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/try-catch https://ideone.com/gjRXk6
こうゆう意図的にエラーを起こしたかったんだよ、エラーの起こし方がよく分かったわ StreamReaderやStreamWriter使ってusingで括るの忘れてファイルが握られっぱなしなんですけど、なんでClose呼ばないの?
習慣にしようよ。って、こいつらOpenが無いからClose忘れるんだよね。
非対称な関数作るんじゃ無いよもう。Open要らないならCloseも要らない様にしろよな。ぷんぷん。 もはや一貫性のない欠陥言語。当初のルールを無視しまくり機能追加した結果がこれ。 無能老害がついていけなくなった結果が >>877 w >>878
C#のような古くさい設計の言語使ってるおまえは十分老害。
C#はまさに増築しまくりの不便で欠陥だらけの温泉旅館。
未だにそれをナウい温泉だと思ってるおまえのようなボケ老人にはお似合いwww はいはい
わざわざそんな言語のスレに来てなにをしたいんだよ w いや、ドア開けたら閉めるだろ?、猫じゃ無いんだからさ。
でも開けた覚えの無い自動ドアが実は半自動で、
閉める時だけは手動なんて、合理的に考えて不便じゃね? >>883
お前のケツには「人生を開始する」なんてメソッドは生えてないだろ?
でもお前の人生はそのうち終わるし、刺されたら即座に終わる
生まれた瞬間に始まっていて、終わらせるのはいつでもできる
ごく自然な摂理 >>884
親クラスが産むメソッド呼んだんだから、終わらすメソッドも親クラスが呼ぶだろ?
自殺メソッドはそりゃ普通は呼ばないわな。 >>885
あー、お母さんと代わってくれるか?
もしくは学校に行きなさい C#はニート専用だしな。プロはJavaを使ってる。 馬鹿がガベコレで夢を見たんだよ。そしてJavaをパクった。
だが現実はusingにdisposeだらけ。
ほんと馬鹿だよな。もはやC言語以下の不便さ、汚さ。ボケ老人には革新に見えるらしいwww 一貫性はあるけどさ、仕事で2.0のソースメンテするとストレス半端ないよ わかる
C# 2.0ってまるでJavaみたいでスゲー使いにくい カベコレのせいでデストラクタがいつ動くか不定でC++のようなスコープ終了で自動クローズができなくなった。
結果、using、disposeの導入。
馬鹿がほんと何も考えないで設計するとこうなるという見本。ほんと醜い言語だよ。
一貫性? ないない。C#2.0とは既に別言語だよ。名前買えるべき。Neet-C#とかに C#が開発現場からほぼ淘汰されたから良い時代になった。保守で残ってるのは2.0案件ばかり。
こういうゴミ案件は、自称おれは理解している ID:bL+b5Osr に投げるのが一番。 ホントにゴミの巣窟スレになったな
初心者どころかひきこもりがずっと吠えていてそれにいちいち相手するクズまでいる >>900
IDに変えるのにどんなに時間かけてんだよ。馬鹿め。 せっかくのGWだからな。
みんなで死滅寸前のC#にトドメを刺そうではないか。
ヘジがMSを退社すれば黒歴史としてC#は完全に消される運命。 なんかC#に親でも殺されたのかと思うような奴らがいっぱいおるのなんなの
今さらJavaドカタが出張してくるはずもなく謎だわ GWなのに人がいない。C#は完全にオワコンだったわ。今日はニュー速で過ごすわ。 Javaは今末期だから必死なんだろう
JavaしかできないJavaドカはおまんま食えなくなる 狂っているのはID:OvoGcsme=ID:o29GXtCOだけ
GWが昨日から始まっている方 ヒープ管理から解放されたけど、むしろリソース管理が意味不明になってるよな。 どうせそいつはふらっとに居たおじいちゃんだろ
相手にするだけ損 ワッチョイなんかいらない
規制を強化すればスレが良くなる、という単純なパターンを鵜呑みにする思考こそ批判されるべきだ ワッチョイ有りはもう立っているんだから付けて立てたら重複だ
ふらっとに頭のおかしいやつ行かないようにここで囲っててくれ 勝海舟は「憂国の士を自称する連中が国を亡ぼす」と言ったそうだけど、スレも同じだね。
荒らしてる奴に限って自分が荒らしだと思ってないどころか、
逆に俺はスレを憂いてるんだとか盛大に勘違いしてるのな
お前がいなくなるのが一番スレのためだってw >>910
1週間NGに入れられるから便利ってだけだよ
規制ってなんのことさ まあしかしこのスレには要らない気がするぜ
ゴミ棄て場は必要だからな マウスカーソルの位置を0.1sec置きぐらいに全部取得したいんだけど、
終了時刻は決まってないので配列で宣言し難い。
これってDictionaryとかに入れていけばいいのかな?
x,y座標と時間の3変数になるんだけど、
時間をkey noにしてx,yを紐づけるみたいな感じでOK?
time,xとtime,yの二つのDictionaryを作る。
なんかすごく冗長な気がする。
time, x, y
みたいなDictionaryってできないのだろうか・・・。 時間をキーにする意味がないだろ
普通にList<(DateTime time, int x, int y)>でいい >>920を見てC#って匿名型のList<T>を簡単に作れる新しい構文ができたのかと
思ったが、そんなものはなかったw
あと、調べてないがDateTime.Nowの精度は恐らく秒単位だと思う。
だから時間は記録開始かまたは先頭のデータからのオフセットをms単位で
記録するとかの方がいいだろうねたぶん。 >>922
DateTimeプロパティにMillisecondあるから。DateTime.Nowでも取り出せる
https://msdn.microsoft.com/ja-jp/library/system.datetime(v=vs.110).aspx
>>917
Dictionary<DateTime,Point>じゃ嫌なのか? そういう場合は構造体に包んで扱うと良いよ
public struct Cursor{
public float x;
public float y;
public int frame;
public Cursor(float x, float y, int frame){
this.x = x;
this.y = y;
this.frame = frame;
}
}
// コレクションを生成
var list = new List<Cursor>();
// 追加する
list.Add(new Cursor(x, y, frame));
あとマイクロ秒を後で使う予定がなければフレーム番号で保持するのが妥当だと思う >>922
いや今のC#は>>920は通るぞ
タプルだ >>924
データ型にms単位になってるからってHWがその精度を持ってるかどうかは別問題w
RTCは歴史的にそんな精度を持ってないw
>>926
ああ、そうなのか
名前知ってるだけで全然使ったことないから知らんかった >>927
知ったかさん乙
現在時刻をRTCから取得するOSなんてほぼないぞ >>930
マジで言ってるの? w
RTCから読み出すのはブート時だけやぞ 動画や音声再生するのにより正確なタイムチックが必要なアプリは山ほどあるし、実現してんぞ。 ほら、彼ら少し頭おかしいからさ
許してやってくれないか RTCは頻繁にアクセスするには遅すぎるデバイスだからOS起動後の時計はタイマー割り込み駆動だよ いろいろありがとうございます。
終了時刻が決まってないからlistとかかなとおもったんですけど、
構造体の方がよさそうですね。
試してみます。 それとは別にc#で
List<(DateTime time, int x, int y)>
みたいな複数の変数を扱うことってできるのでしょうか?
var list = new List<int>();
みたいに一つの変数だけなのかと思ってました。
これができるといろいろ便利そうなのですが・・・。「
List<(DateTime time, int x, int y)>
って入力してもエラーが返ってくるんすよね。。。 >>940
VSのバージョンが古いんだろ
VS2017でないとダメ VS2017かつ、NuGetでSystem.ValueTupleを参照する必要がある タプルの利用には、ValueTuple構造体という型が必要になります。 この型が標準ライブラリに取り込まれるのは .NET Framework 4.7、.NET Standard 1.7を予定しています。 それ以前のバージョンでタプルを使いたい場合には、以下のパッケージを参照する必要があります。
System.ValueTuple なるほど
System.ValueTuple
ですね。
試してみます。
ありがとうございます。 また初歩的な質問で申し訳ないのですが、
C#のクラスと構造体で、これまで軽量のオブジェクトでもすべてクラスで作成していたんですが、
あまりお作法的には宜しくないんでしょうか? なんとなく構造体はクラスの下位互換みたいなイメージで使用していませんでした。 応用アプリケーションなら全部クラスでいいよ
構造体は構造体のメリット・デメリットを全て把握した上で、構造体のほうが良い選択であり、将来に渡って絶対にクラスに変更したくならない、と確信できる場合に使うもの
そんなケースは滅多にない
あ、PInvokeは例外な C#上の構造体はクラスと等価だ。
つか、構造体で使う共通処理をまとめてそこに突っ込め。
ほら、使い易くなっただろ?
構造体なんか使わずクラス使え。 structは値型として扱われるので
参照型であるclassと同じようにコピーするとメモリの内容が丸ごとコピーされる
structを使った方が良い時の条件見たけど
普通はクラスで良いんじゃね?
https://dobon.net/vb/dotnet/beginner/whenusestruct.html ありがとうございます。
ちょっと急ぎでコーディングしてるので、
不慣れな構造体でなくクラスでやってしまおうと思います。
こうやって新しい知識をいれないとあとではまって痛い目あうのかなぁ。 >>954
構造体には構造体のメリットもある(だからBCLでも使われてる)んで、
2chネラ的な1bit脳の極端な意見は真に受けない方がいいよw
一つだけ挙げれば、プロパティとして公開するような値は構造体の方が楽。
クラスでもイミュータブルにすれば構造体と同じような感覚で使えるが、
イミュータブルなクラスは使い勝手がよくない >>956
わかってないなら無理してレスしないほうがいいぞ レス数が950を超えています。1000を超えると書き込みができなくなります。