ラベル C# の投稿を表示しています。 すべての投稿を表示
ラベル C# の投稿を表示しています。 すべての投稿を表示

2016年2月16日火曜日

開発初心者がこれだけは知っておいた方が良いこと②

こんにちは!Sです。 前回に引き続き「開発初心者がこれだけは知っておいた方が良いこと」について書いていきます。 今回のテーマは「おかしいところの見つけ方について」です。 ネットで調べて見よう見まねで書いてみたけれど上手く動かない。。。という時に 早くどこがおかしいのかを見つける方法について書いていきます。 <エラー画面が表示されている場合> ①ログを見る  新規作成の場合は自分でログをはくように設定しないといけませんが、  既存のファイルの修正であればおそらく既にエラーが起きた際にエラーログを出力するように  設定されているはずです。  なのでまずはソースからログの出力先を調べて、ログを見に行きましょう! <エラー画面は表示されていないが、やりたいことが出来ていない場合> ①デバッグする  ここがおかしいのかも。という怪しい場所付近にブレークポイントを設けて、  デバッグして下さい。きっとヒントになるはずです。  ▼最初にマスターしたいVisual...

2016年2月9日火曜日

C# 列挙型 enum

こんにちは山田です。 開発言語:C# C#の基本構文でいまいち呑み込めなかった部分について わからないなりに解説をしようと思います。 ~良くわかっていない人による解説~ ■列挙型とは (enum) 特定の値しか取らないようなものに対して使用します。 たとえば曜日だったら 月~日までの7つのみになります。 この曜日を例に取り上げていこうと思います。 ■基本構文 【定義の仕方】 列挙型の宣言はenumをはじめに記述し、つづいて列挙型の名前を記述します。 ------------------------------------------------- enum 列挙型名 {   メンバー1, メンバー2, …, メンバーn    ←列挙定数 } ------------------------------------------------- 例1) ------------------------------------------------- enum...

2016年1月29日金曜日

スマホで写真を投稿したら・・・ひっくり返って表示された!

「スマホで写真を投稿したら・・・ひっくり返って表示された!」 なんてことに出会ったことはありますか? 写真のデータの中には、写真の情報はもちろんですが、 どういう風に写真を撮ったのか、というデータも持っています。 -スマホを縦にして写真を撮ったのか、横にして写真を撮ったのか。 といった情報です。 この情報を正しく扱ってあげないと、Web上で写真を表示するときに、 ひっくり返ったり、横向きになったりしてしまうのです。 デジカメ画像の規格として、Exif(イグジフ)というものがあります。 ※詳しくは、http://e-words.jp/w/Exif.html この規格を採用しているカメラ(スマホカメラ含む)の場合、 写真以外に様々なデータが、付加情報として記録されます。 この付加情報を持っている写真データの場合は、 その情報を考慮し、写真を保存してあげないと、ひっくり返ったり、横向きになったりしてしまうのです。 iPhoneのカメラで採用されていることもあり、開発する際に遭遇することもあると思うので、 付加情報の確認とその修正のサンプルを載せておきます。 もちろん、C#です。 private...

2016年1月28日木曜日

開発初心者がこれだけは知っておいた方が良いこと①

こんにちはSです! 前回、自己紹介でも書きましたが、わたしは7ヶ月前まで本当に何も知らず、 分からない事だらけでした。 (ブラウザって何?アマゾンって本屋さんじゃないの?!という状態でした。 本当にごめんなさい。。。) そこで今回は「最初にこれを知ってたらもっとラクだったかも」と思うことを思い出しながらまとめます。 基本中の基本なのでベテランの方々は読み飛ばすか、 もしくは次に新人さんが入ってきたときに、こういうところにつまづくんだな~という参考にしてみて下さい。 ◆勘違いポイント わたしがはまった勘違いポイントです。 きっと誰でも最初に一度ははまるのではないでしょうか。。。?わたしだけ?? ①JavaとJSは別物・・・  先輩たちがJSといっているものはJava Scriptという言語のことであり、Javaとつきますが  Javaとは完全に別物です。 ②JSとjQueryも別物・・・  「jQueryはJSで書くと何十行にもなるものを少ない行数で書けるようにまとめたライブラリだよ」  と教わったので、わたしは「jQueryはJSの短い版でほとんど一緒なんだ!」  という拡大解釈をしていましたが、書き方が違います。  なのでjQueryオブジェクトをJSの書き方で動かそうとしても全く動きません。。。 ◆最初のつまづきポイント ①{ }の中で定義した変数は{ }の外で使えない←当たり前 ②分からないことがあってもどんなワードで検索すれば良いのか良く分からない  →「やりたいこと C#」とかで調べてみるけどやりたいことの表現が適格でないと全然欲しい結果が返ってこない  →もういっそ先輩に「こういうことがやりたいんですけど、なんてググったら良いですか?」と聞いた方が早い ③もともと用意されているメソッドと自分(の会社の人)が作ったメソッドの違いが分からない  →オリジナルのメソッド名でググるけど何も出てこない。。。  →オリジナルのメソッドはそのページ内、もしくは継承しているページのどこかで定義しています ◆先に知っておいた方が良いVisual...

定数の新しい行です エラー

こんにちは山田です。 (ちなみに開発言語:C#の話) 本日もカタカタとプログラミングをしている中  文字の置き換え(String.Replace)を行おうと思ったら見慣れないエラーが   「定数の新しい行です。」 ちょっとわからなくグーグル先生に聞いてみました。 どうやら調べてみると¥の文字に原因があるようでした。  解決方法としては2パターン見つかりました↓ ■解決方法①  \を直接書かず System.IO.Path.DirectorySeparatorChar; を使う tempFileName1.Value.ToString().Replace("/",...

2015年12月14日月曜日

”CustomValidator”について

こんにちわ、開発者のⅠです。 さて、今回はASP.NETの検証コントロールの一つである「CustomValidator」についてのお話です。 といってもそんな大したことではないですが……。 他の検証コントロールには、「RequiredFieldValidator」「RegularExpressionValidator」などがありますが、これらと「CustomValidator」には違いがあります。 それは、『ControlToValidate』プロパティが空でも良いという点です。 つまりは、検証対象の指定が必須ではなく、任意であるということです。 ソースコード側で、検証の対象やErrorMessageプロパティに適当なメッセージを設定することも可能です。 やはり、"Custom"という名は伊達じゃないといった所でしょうか。 それでは、今日はこの辺りで失礼しま...

2015年12月10日木曜日

任意のURLの文字列を作るためには?

こんにちは山田です。 本日は任意のURLの文字列を作成する方法です。 そもそもの経緯としては、改ページをする時に、現在のURLをそのまま引き継ぎつつ新しいURLとしてページ番号入りのものをつくるために使いました。 開発言語:C# public static void Main() { string _param = "";//何か引数があれば"&"ごとに代入 string url = CreateLink(1,100, _param != "" ? "?" + _param : ""); Console.WriteLine(result); } public string CreateLink(int _caseID, int _ID, params object[] _args) { string result = ""; if(_args != null &&...

2015年12月9日水曜日

クライアントからリクエストされたURLを取得する方法

 こんにちは山田です。 開発環境:ASP.NET2.0 開発言語:C# リライトをかけたページの改ページと並び替えをしようと思っていた時に、 仮想URLを取得したい場面がありました。 クラスライブラリを探したり、ネットを探したら 綺麗にまとめているページがあったので参考にさせていただきました。 プロパティ 種類 物理/仮想 クエリ情報 追加パス ApplicationPath アプリケーションパス 仮想 × × PhysicalApplicationPath アプリケーションパス 物理 × ○ CurrentExecutionFilePath ファイルパス 仮想 × × FilePath ファイルパス 仮想 × × Path ファイルパス 仮想 × ○ PhysicalPath ファイルパス 物理 ○ ○ RawUrl ファイルパス 仮想 ○ ○ Url ファイルパス 仮想(フルURL) ○ ○ PathInfo 追加パス 仮想 × ○  @IT[ASP.NET]クライアントからリクエストされたURLを取得するには?  このRawUrlを使って解決しました。 他にもプロパティがあるので試してみようと思います。...

2015年12月3日木曜日

GetTypeで型名を見る C#

こんにちは山田です。 型名って忘れること多くないですか? そんな時にこれさえ覚えとけば安心の、型名の出力方法の覚書です。 開発環境:ASP.NET 2.0 開発言語:C# 必要となる構文はこちらです。  Object.GetType メソッド 例) ASPX側 <%# Eval("AnimalName") %> ASPX.CS側 protected void AddStatus(object sender, RepeaterItemEventArgs e) { //is演算子でオブジェクトの型の確認 if (e.Item != null && e.Item.DataItem is string) {   Control ctl1 = e.Item.FindControl("ahref");   //ct1の形名がわからないとき   Response.Write(ctl1.GetType().Fullname);   //出力は「System.Web.UI.HtmlControls.HtmlAnchor」となり型名を教えてくれる   if...

2015年11月30日月曜日

C# ref修飾子とout修飾子とは

こんにちは山田です。 メソッドに引数を参照渡しで渡す方法です。 メソッドの戻り値で完結することが多いのですが、 それ以外に、戻り値とは別に引数を返したい場合があります。 自分が使うシーンとしては、メソッドの戻り値でDBから取得したデータリストを取得して、 そのデータの個数の値を別個に取得したいときなどがあります。 開発環境:ASP.NET2.0 開発言語:C# 値渡しの場合と、参照渡し場合の違いをまとめてみました。 ■元々(値渡しの場合)     public static void A(int arg1)     {         arg1 = 50;     }     public static...

2015年11月27日金曜日

ASP.NETでのURLリライトの流れ

こんにちは山田です。 長年の疑問のURLリライトについてわかってきたので その覚書です。  開発環境:ASP.NET2.0 開発言語:C# IIS:6.1 ■URLリライトの別名 URLリライト=URL書き換え 日本語だとURL書き換えとなります。 ■そもそもURLリライトは必要なの? 個人的な疑問としてページリライトの技術はURLから判断して、 IISのサーバーのファイルディレクトリ(どの階層にいるのか)がわかりにくくなるし、 今見ているページの関連する記事を探したい場合、URLの法則性がわからないのでなんと打ち込めばよいのかわからない等の感想を持っていました。(こんな使われ方は想定されていいないと思いますが、、、) 一般的にどういう目的で使われているかと URLが短い。 URL入力が簡単になる。 URL を見ると、サイトの構造がわかる。 "短縮可能...

2015年11月10日火曜日

ページのリダイレクト方法 web.config

ページのリダイレクト方法 こんにちは山田です。 リダイレクトについてまとめました。(action type="Rewrite"でリライトも設定できます。) 開発環境:ASP.NET 使用言語:C# リダイレクトの書き方ですが いくつか方法があるようなのですが、 今回はWeb.configに記述する方法を使います。 まず、nameにリライトルールの名前を記述します。 次に、このルールにマッチする正規表現を設定します。 最後に、URLがマッチしたときに発生するアクションを設定します。  この“^campaign/index([0-9]{6}).aspx$”では、 もし入力URLが“^campaign/index([0-9]{6}).aspx$”の場合、{R:0}は“campaign/index201511.aspx”となり、{R:1}は“201511”になります。 ユーザーをリダイレクトするURLになるよう、この{R:1}/の値を使用します。 ({R:N}のNとは後方参照のインデックスになります) <configuration>  ...

2015年10月23日金曜日

サーバーコントロールの属性を書き換える方法

どうも山田です。 ASP.NET環境で開発を行っているシステム屋です。 デザイン側の属性を書き換える方法の覚書です。 意外と便利です。 aspx  <a href="#" class="btnNegative" runat="server" id="linkToTop"> C# lintToTop.Attributes.Remove("href"); lintToTop.Attributes.Add("class", "btnDisabledNotGray m20"); lintToTop.Attributes.Clear(); ①href属性を削除 ②class属性を上書き ③すべての属性を削除...

2015年10月22日木曜日

タイニーPNG のAPIを利用した画像圧縮アプリケーションの作成

こんにちわ山田です。 昨日は、オリオン座流星群がよく見えたそうですね。 まったく見れなかったです、、。 たまたま夕方のニュースで情報を得ていたので、楽しみにしていたら 朝になるまで思い出せませんでした。 そんなこんなで、画像を外部のサービス(API)を利用して 圧縮して、画像サイズを小さくするメソッドを作成したので、その覚書です。 開発環境 ASP.NET 開発言語 C# 使用したのは、TinyPNGでほぼ公式のリファレンス通りに実装しました。  画像→byte配列にするのが苦戦しました。ここを参考にさせていただきました。  呼び出し元     protected void ButtonUpload_Click(object sender, EventArgs e)    {   ...

2015年10月16日金曜日

インライン式 <%= %> と <%# %>の違い

インライン式 <%= %> と <%# %>の違い こんにちわ、山田です。 ASP.NETを使っていてよくわからなかったところがあったのでまとめました。 この書き方、調べたらインライン式というらしい。 自分がよく使うものをまとめてみました。 ■埋め込みコードブロック【<%= %>】 Response.Writeで代用できるブロック 値(string)を返す時はこれを使用する (例) <%= shopName %>    ↑ソースファイル(csファイル)でprotectedのもの ■データバインド式【<%# %>】 RepeaterサーバーコントロールなどでBindしている場合(Eval)はこれを使う (例)  <asp:Repeater runat="server" ID="shopList">  ...

2015年10月6日火曜日

指定の文字数を取得する

こんにちはYです。 SEO対策をしていて、ちょっと文字が多いな、、、と感じた箇所にぶつかりました。 データもとの文章を変更せずに、先頭の~文字で切って妥協することにしました。 その時の対処方法です。 String.Substring メソッドを使用しました。 String nagaiMoji = "Hello World!" String moji = nagaiMoji.Substring(1, 6); 上記の場合の出力は「ello W」となります。 これを使用して、String moji = nagaiMoji.Substring(0, 99); 100文字分を取得するようにと書くことができま...

2015年10月2日金曜日

ファイルアップロードで苦戦したところ(4MB)

こんにちわYです。 本日は、ASP.NET 2.0 のファイルアップロードで苦労したところになります。 どういうわけか、ファイルサイズが4MB超えるとエラーになってしまうというものです。 System.Web.HttpUnhandledException。種類 'System.Web.HttpUnhandledException' の例外がスローされました。~ ↑ こんな感じ 調べてみたらサーバーコントロールのFileUploadを使用したときの上限値は4,096kbになっていたということがわかりました。このPOSTされるアップロードの上限を変更するには、 Web.configのhttpRuntime要素のmaxrequestlength属性に追加すればいいみたいです。 ちなみにデフォルトの上限値は4,096kbで、これを5,120kbへ変更する方法です。 ↓↓ <configuration>  ...