タグ

orangecloverのブックマーク (25,662)

  • 引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita

    この記事は C# その2 Advent Calendar 2018 の第一日の記事である。 はじめに この記事では、主にエンタープライズアプリケーション(SI、企業向けの業務システムやパッケージ製品)の開発に於いて、新規開発ではなく修正や拡張を行うようなシーンを想定して、無駄な工数をなるべく削減すべく自分なりに考えて実践しているベストプラクティスを書いている。 新規開発の場合でも、将来の拡張や修正が見込まれるはずなので、考慮すべき事は同じだ。 競技プログラミングや、組み込み開発の場合でも基的な考え方は適用可能だが、メモリ効率やパフォーマンスを考慮する必要もあるので、あえて配列を使ったり、逸脱するようなケースもあるだろう。 対象とする読者層は、C#プログラミング歴1年以上、SIer やユーザー企業に所属(もしくは常駐)し、特に複数人チームでの開発に携わる若手プログラマ、初級から中級へのステ

    引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita
  • 【C#】readonly と ReadOnlyCollection - vaguely

    はじめに readonly と IReadOnlyCollection 各要素のパブリック変数 おわりに 参照 はじめに この記事は C# その2 Advent Calendar 2018 三日目の記事です。 前回書いた通り、最近は dotnet cli などのコードをたどっています。 その中で IReadOnlyCollection などを使って処理の結果などを返しているのが目につきました。 これまで自分ではあまり使ったことがなかったのですが、気になったので調べてみることにした、というお話です。 readonly と IReadOnlyCollection まずは readonly キーワードと IReadOnlyCollection の違いについて調べてみます。 private readonly List< string> _texts1 = new List< string>();

    【C#】readonly と ReadOnlyCollection - vaguely
  • C#クイズとその解説 - Qiita

    元ネタはEric Lippertのブログです。コードは少し改変していますが、言っていることは同じです。 A dynamic definite assignment puzzle A dynamic definite assignment puzzle, part 2 class Program { static void Main() { object obj = GetObject(); // ★ string str; if ((obj != null) && ((str = GetString()) != null)) // ◆ { System.Console.WriteLine(obj + str); // ▲ } } static object GetObject() { return "hello"; } static string GetString() { return

    C#クイズとその解説 - Qiita
  • 新しい元号はどのように追加されて C# ではどんな影響があるか - sh1’s diary

    この記事は、C# その2 Advent Calendar 2018 の5日目の記事です。 元号の一覧を表示するプログラム 新元号がどのように対応するのか 新しい元号を確認してみる まとめ サンプル 参考 平成は 2019 年の4月末までありますが、この年の瀬のタイミングで整理しておきたく存じます。(追記:新しい元号は「令和」でしたね) ちなみに、平成が終わるタイミングは、今上天皇 125代の退位により終了する予定らしいです。2019年(平成31年)04月30日 までが平成で 05月01日 から新元号になる予定です。 平成 - wiki 令和 - wiki 「 Handling a new era in the Japanese calendar in .NET - .NETBlog 」の記事が Microsoft のブログで公開されました。とてもよいまとめになっているので、ここをチェックす

    新しい元号はどのように追加されて C# ではどんな影響があるか - sh1’s diary
  • [C#]async/awaitとUniRx.Asyncの実装を追う - Qiita

    ついにUnityでもIncremental Compilerを有効にすることでasync/awaitが使用することができるようになりました。 これは大変うれしいことではありますが、async/awaitが何をやっているかわからないと実行速度や効率の面で不安になるかもしれません。 そこで今回はasync/awaitが裏で何をやっているのか、async/awaitをUnityで便利に使用することができるUniRx.Asyncが裏で何をやっているのかについて解説していきます。 async/awaitの使い方や詳細についてはすでに色々記事があるとは思うのでそちらも参考にしてください。 async/awaitの実装について asyc/awaitのおさらい async/awaitを使用すると以下のような書き方ができます。 async Task Hoge() { Console.WriteLine("1

    [C#]async/awaitとUniRx.Asyncの実装を追う - Qiita
  • 【C#】Queue で遊ぶ - vaguely

    はじめに Queue クラスについて どう使うか パフォーマンス比較 コードを見てみる おわりに 参照 はじめに この記事は C# その2 Advent Calendar 2018 七日目の記事です。 前回 と同じく、dotnet cli のコードを辿っていく中で見かけた、 Queue クラスについてです。 Queue クラスについて 下記のような特徴があります。 Enqueue() で要素を追加し、Dequeue() または Peek() で追加した要素を追加した順に取り出す(先入れ先出し)。 インデックスを指定して任意の順番の要素をとることはできない。 Dequeue() で要素を取り出した場合は該当の要素が Queue の中から取り除かれ、 Peek() の場合はそのまま。 Queue の中身が空の状態で Dequeue() や Peek() を実行すると InvaridOperat

    【C#】Queue で遊ぶ - vaguely
  • 【C#】メソッドのオーバライド、返値型を元の型の派生型にできない。【covariant return types】 - Qiita

    【C#】メソッドのオーバライド、返値型を元の型の派生型にできない。【covariant return types】C#.NET.NETFramework 追記 : C# 9.0では、covariant return typesが追加されるようです。 2018年現在のC#(C# 7.3とかそれより前)では、オーバライド元のメソッドとオーバライドしたメソッドで、返値型は同じ型にしないといけない。そのため、メソッドをオーバーライドした時、返値型を派生型にできない。 ちなみに、これJavaだとできる。「共変戻り値型って知ってますか?(スライド)」 どう困るのか 「そんなん別にできなくてもよくない?」 「え、できなかったんだ?でも、気づかなかったんだから、大した問題じゃないんじゃ?」 「知ってた。別に困らなくないか?」 そう思う人も多いかもしれないけれど、これができないから次みたいな例で困る・・・。

    【C#】メソッドのオーバライド、返値型を元の型の派生型にできない。【covariant return types】 - Qiita
  • CData ADO.NET Provider が .NET Coreに対応したので、試しにXamarin サンプルアプリ を Dynamics 365 のタスク管理アプリにしてみる - Morning Girl

    この記事は「C# その2 Advent Calendar 2018」の記事です。 qiita.com 手前味噌なんですが、最近 CData ADO.NET Provider が .NET Standard に対応しました! やったね! https://www.cdata.com/jp/ado/ それじゃあ、Unityt でも Xamarin でも使えるではないか! ということで、個人的にあまり今まで触れてこなかったXamarin を体験しながら、試してみた! というのが記事の趣旨になります。 CData ADO.NET Provider って何? 通常SQL ServerやMySQLといったRDBにアクセスするために提供されているADO.NETを、Dynamics 365 や SalesforceTwitter、FacebookといったWeb APIを提供しているサービスに接続できるよ

    CData ADO.NET Provider が .NET Coreに対応したので、試しにXamarin サンプルアプリ を Dynamics 365 のタスク管理アプリにしてみる - Morning Girl
  • Visual Studio 2019 Previewをダウンロードしました。〜Qiita Advent Calender C#その2 10日目 - Better Engineer Life

    Connectの後、Twitterを見ていると、早速、Visual Studio 2019で賑わってました。 我慢しきれずダウンロードしちゃいました。 visualstudio.microsoft.com C# その2 Advent Calendar 2018 - Qiitaの10日目にエントリーして、拙いながらお伝えしたいと思います。 Windows インストール 起動 比較 Nullable Reference Type Cleanup Code Mac インストール 起動 操作 さいごに 追記(2019/4/4) Windows インストール これは2017と同様ですね。 起動 で、この画面が出てきます。 ちなみに、ソリューションを開く時などは、いつもの画面が出てきます。 これまでの操作感との違いにあまりにコレジャナイ感を覚えたのですが、Visual Studioについて重い・重いを

    Visual Studio 2019 Previewをダウンロードしました。〜Qiita Advent Calender C#その2 10日目 - Better Engineer Life
  • WPF OxyPlot の使いかたの基本まとめ - sh1’s diary

    この記事は、C# その2 Advent Calendar 2018 の11日目の記事です。 OxyPlot とは バージョンと作成するタイプ とりあえずグラフを表示してみる(1のやりかた) とりあえずグラフを表示してみる(2のやりかた) リアルタイムに Series データの追加 Series (線グラフ) のカスタマイズ グラフのマウス操作のカスタマイズ 縦軸と横軸の設定 画像にして保存 サンプルのプログラム OxyPlot とは OxyPlot グラフを描画するためのライブラリです。 拡大や縮小(Pan)、範囲指定(Zoom)が標準で備わっているグラフを作れる、 WPF らしいデータバインディングを利用した記述ができるなどの特徴がある、数少ない無料のグラフライブラリでもあります。 NuGet でもそこそこの DL 数 (2018年12月現在で 369K) を誇る一方で、リファレンスは

    WPF OxyPlot の使いかたの基本まとめ - sh1’s diary
  • AssemblyLoadContext - Qiita

    この記事は、C# その2 Advent Calendar 2018 の9日目の記事です。 AssemblyLoadContextとは プラグインなどで他のアセンブリを動的に読み込む際そのままでは読み込めないケースがあります。 具体的には ホストするアプリケーションと同じライブラリに依存しているがバージョンが違う static変数をホストと分ける必要がある .NET FrameworkではAppDomainを分けて別々にロードすることで解決できました。 しかし.Net Coreではエントリポイントからの実行における複数のAppDomainがサポートされていません 1 。 そこで.Net CoreではAssemblyLoadContextが用意されています。 AssemblyLoadContextが別であれば別アセンブリとして認識されるわけです。 デフォルト空間へのロード まずは起動時にランタ

    AssemblyLoadContext - Qiita
  • 【C#】自動実装プロパティの話 - vaguely

    はじめに 自動実装プロパティについて IL を読んでみる おわりに 参照 はじめに この記事は C# その2 Advent Calendar 2018 の十四日目の記事です。 普段何気なく使っているプロパティですが、中のデータはどのように扱われているのかな~、と思ったので調べてみることにしました。 特に自動実装プロパティを中心に見てみたいと思います。 自動実装プロパティについて まずは今回の話の中心となる自動実装プロパティについて軽くまとめます。 具体的にはこれです。 public string Name { get; set; } これによっていちいち手動で Getter 、 Setter メソッドを用意しなくとも、 Name = ""; のような処理では Setter の、 string n = Name; のような処理では Getter の役割を果たしてくれる、というものです。 特に

    【C#】自動実装プロパティの話 - vaguely
  • 25行でC#のオブジェクト指向がわかった気になる - Qiita

    この物語はいつもLinuxでC書いてるプログラマが急にC#の案件を振られ、勉強のためいろいろコードを書いていたら、なんとなくオブジェクト指向がわかった気になる過程を淡々と描くものです。間違ってるかもしれないので過度な期待はしないでください。 前提知識 端々にCとの比較が出てきますが、Cの入門書をちょっとでもかじっていれば問題ないと思います。 注意!! これはあくまでも自分がオブジェクト指向という考え方を勉強し、納得する過程をなぞったものであり、厳密な定義とは異なる解釈をしている場合があります。 まずは簡単な文法を確認 オブジェクト指向言語触るの初めて(´・ω・`) クラス

    25行でC#のオブジェクト指向がわかった気になる - Qiita
  • 【Java11】javacでコンパイルせずにJavaを実行してみた - Qiita

    はじめに 投稿はJava Advent Calendar 2018 の25日目の記事です。 初心者ではありますが、「参加することに意義がある!」の精神で、とりあえず空いていた枠に登録してしまいました。 最終日にも関わらず、薄い内容で申し訳ない気持ちもありますが初心者らしく、いざHelloWorld! ※2018/12/26更新:サ〇タ業務の都合上、書きかけで投稿してしまったため、一部内容を追加。 コンパイルせずにjavaを実行!? Java11から、javacでコンパイルせずにjavaを実行できるという噂を聞きつけたため、HelloWorldしてみる。 ただし、ソースファイルが1つで完結する場合に限るなどの制限があるようなので、その辺も試してみる。 環境 OS:Windows 10 JavaOracle Open JDK 11 コンソール:コマンドプロンプト まずは普通のHelloWo

    【Java11】javacでコンパイルせずにJavaを実行してみた - Qiita
  • C#リフレクションTIPS 55連発 - Qiita

    タイトルの通り、C#のリフレクションのTIPS集です。 これから示すコードは、以下のusingディレクティブが前提のコードとなってます。 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; 普段はvarキーワードをよく使ってますが、ここでは変数の型がわかるようにvarキーワードの利用はできるだけ控えています。 それと、いくつかのコードはdynamic使ったほうが簡単に書ける場合もありますが、あくまでもリフレクションのサンプルということでご容赦を。 1. 型名から型情報を得る

    C#リフレクションTIPS 55連発 - Qiita
  • 2018年の年末にJava入門環境を整えてみる - Qiita

    Javaを書こう! この記事では、Java Advent Calendar 2018 2日目として、Javaを使ったことのないプログラマー向けに、今どきはこれぐらいから始めたほうがいいよねと言えるJava開発環境を紹介するとともに、「Javaが使える」と思えるレベルになるまでコンパイラや静的解析ツールが叱ってくれるような設定をしてみたいと思います。 プログラミング自体が初めてでJavaを使ってみてるという人にはこの記事はあまりお勧めしません。他のプログラミング言語が使えて、Javaもなんとなくはわかるんだけど、って人向けです。 また、経験者におかれましては、俺の環境の方がいい、という想いは皆さんあると思いますので、ぜひご紹介ください。なお、2018年末の記事なわけですが、私の手元ではここ数年はあまり基構成が変わってないです。そろそろFacebook InferとかChecker Fram

    2018年の年末にJava入門環境を整えてみる - Qiita
  • Retrofitの仕組みを知ろう - 絵描きエンジニアの日常

    はじめに Javaアドベントカレンダー5日目担当の null です。 Javaのライブラリやフレームワークで登場するアノテーションは、メソッドやフィールドにつけるだけで値が勝手に入ってきたりして魔法のように思うかもしれません。今回はHTTP ClientのライブラリであるRetrofitを題材にアノテーションがどのように使われているか調べてみましょう。 Retrofitのざっくりした動き ドキュメントのサンプルからコードを引用します。 ライブラリの利用者はGitHubAPIを叩くインターフェースを用意します。 public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); } Retrofit#createにインターフェース

    Retrofitの仕組みを知ろう - 絵描きエンジニアの日常
  • Arrays.asList(T... a) は、なぜ add や remove ができないのか? - Qiita

    (この記事は 地平線に行く とのマルチポストです) Arrays.asList(T... a) というメソッドについてググると、「このメソッドで返ってくる List は、add や remove ができないので注意しましょう」ということが良く書かれています。 でも、「なぜできないのか?」という点については書かれていないことが多いので、理由を説明します。 一言でまとめると「配列を List として扱えるようにラップするためのものだから」です。 (「変換するもの」ではないです) そもそも、どう使うもの? 配列を List<T> として扱いたいときに使います。 例えば、シャッフルするのに Collections.shuffle​(List<?> list) という引数に List を取るメソッドはあるのですが、引数に配列を取るメソッドがありません。 そういうときに、 Collections.sh

    Arrays.asList(T... a) は、なぜ add や remove ができないのか? - Qiita
  • Doma2 でログ出力を制御する - Qiita

    4日目担当の null です。 デフォルトだと、 INFO レベルでいっぱいログが出るので、そのへんを制御する。 環境 Java openjdk 11.0.1 2018-10-16 Doma2 2.19.3 doma-spring-boot 1.1.1 Spring Boot 2.1.1 ソース(一部) buildscript { ext { springBootVersion = '2.1.1.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'org.springframewo

    Doma2 でログ出力を制御する - Qiita
  • AWS Lambda のカスタムランタイムにて Java のカスタムランタイムで関数を動かす - mike-neckのブログ

    これは Java Advent Calendar 2018 の 7 日目のエントリーです。 Java をラムダで動かす Lambda SDK を使って、チュートリアルどおりに作成します。以上。 そうではないですね。 今回やりたいのは AWS Lambda のカスタムランタイムで Java のカスタムランタイムで動く関数を動かすことです。これを会社の同僚に言ったところ、「おまえは何を言っているんだ」というような顔をされました。 おまえは何を言っているんだ 大事なことなのでもう一度言いますが、「 AWS のカスタムランタイムで Java のカスタムランタイムを動かしたい!」、これが今回のエントリーの目標です。 Java 9 のモジュールシステムと jlink によって、アプリケーションが利用する必要最低限のモジュールだけを選別したカスタムランタイムイメージが作れるようになりました。カスタムラン

    AWS Lambda のカスタムランタイムにて Java のカスタムランタイムで関数を動かす - mike-neckのブログ