ウィンドウ位置・サイズを記憶する
プロジェクトのプロパティで次のように設定する。
- 復元
private void frmHome_Load(object sender, EventArgs e) { //ウィンドウの位置、サイズを復元 Bounds = Properties.Settings.Default.Bounds; WindowState = Properties.Settings.Default.WindowState; }
- 保存
private void frmHome_FormClosing(object sender, FormClosingEventArgs e) { //画面プロパティを保存する(BEGIN) if (WindowState == FormWindowState.Normal) { Properties.Settings.Default.Bounds = Bounds; } else { Properties.Settings.Default.Bounds = RestoreBounds; } Properties.Settings.Default.WindowState = WindowState; Properties.Settings.Default.Save(); //画面プロパティを保存する(END) }
C#での一般的なシングルトンの実装
staticコンストラクタを使用する。
public class MySingleton { private static readonly MySingleton theOneAndOnly; static MySingleton() { theOneAndOnly = new MySingleton(); } public static MySingleton TheOnly { get { return theOneAndOnly; } } private MySingleton() { } }
標準的なSystem.Object.Equals()のオーバーライド実装
public class Foo : IEquatable<Foo> { public override bool Equals(object right) { //nullチェック if (Object.ReferenceEquals(right, null)) return false; if (Object.ReferenceEquals(this, right)) return true; if (this.GetType() != right.GetType()) return false; return this.Equals(right as Foo); } #region IEquatable<Foo> メンバー public bool Equals(Foo other) { //省略 return true; } #endregion
- 例外を発生させない
- GetType()で型を比較する
- IEquatable
を実装する - 親クラスがObjectまたはValueTypeでない場合は親クラスのEquals()を呼ぶ
- GetHashCode()をオーバーライドする
- 値型の場合は、==演算子もオーバーライドする※参照型の場合は基本的に不要
Gradle インストール
Gradle をインストール。
suiren% brew install gradle
==> Downloading http://services.gradle.org/distributions/gradle-1.11-bin.zip
######################################################################## 100.0%
🍺 /usr/local/Cellar/gradle/1.11: 153 files, 44M, built in 20 seconds
suiren% gradle -v
- -
Gradle 1.11
- -
Build time: 2014-02-11 11:34:39 UTC
Build number: none
Revision: a831fa866d46cbee94e61a09af15f9dd95987421Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy: 2.2.0
JVM: 1.8.0 (Oracle Corporation 25.0-b70)
OS: Mac OS X 10.9.2 x86_64
Groovy インストール
Groovy をインストール。
suiren% brew install groovy
==> Downloading http://dl.bintray.com/groovy/maven/groovy-binary-2.2.2.zip
######################################################################## 100.0%
==> Caveats
You should set the environment variable GROOVY_HOME to
/usr/local/opt/groovy/libexec
==> Summary
🍺 /usr/local/Cellar/groovy/2.2.2: 60 files, 26M, built in 50 seconds
suiren% groovy -v
Groovy Version: 2.2.2 JVM: 1.8.0 Vendor: Oracle Corporation OS: Mac OS X
Homebrew インストール
Homebrew をインストール。
>>suiren:~ jkaneko$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
/usr/local/bin
/usr/local/lib
==> The following directories will have their group set to admin:
/usr/local/.
/usr/local/bin
Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/bin /usr/local/lib
Password:
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/bin
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> Installing the Command Line Tools (expect a GUI popup):
==> /usr/bin/sudo /usr/bin/xcode-select --install
xcode-select: note: install requested for command line developer tools
Press any key when the installation has completed.
==> Downloading and installing Homebrew...
remote: Counting objects: 167584, done.
remote: Compressing objects: 100% (46986/46986), done.
remote: Total 167584 (delta 119482), reused 167584 (delta 119482)
Receiving objects: 100% (167584/167584), 32.41 MiB | 306.00 KiB/s, done.
Resolving deltas: 100% (119482/119482), done.
From https://github.com/Homebrew/homebrew
* [new branch] master -> origin/master
Checking out files: 100% (3161/3161), done.
HEAD is now at 1b68648 Remove code that doesn't do anything
==> Installation successful!
You should run `brew doctor' *before* you install anything.
Now type: brew help
Mac Ports アンインストール
Last login: Mon Apr 21 22:01:43 on ttys000
suiren:~ jkaneko$ sudo port -fp uninstall installed
- > Deactivating fontforge @20110222_2
- > Cleaning fontforge
- > Uninstalling fontforge @20110222_2
- > Cleaning fontforge
- > Deactivating freetype @2.4.10_0
- > Cleaning freetype
- > Uninstalling freetype @2.4.10_0
- > Cleaning freetype
- > Deactivating git-core @1.7.7.4_0+doc+pcre+python27
- > Cleaning git-core
- > Uninstalling git-core @1.7.7.4_0+doc+pcre+python27
- > Cleaning git-core
- > Deactivating pcre @8.12_1
- > Cleaning pcre
- > Uninstalling pcre @8.12_1
- > Cleaning pcre
- > Deactivating giflib @4.2.1_0+x11
- > Cleaning giflib
- > Uninstalling giflib @4.2.1_0+x11
- > Cleaning giflib
- > Deactivating xorg-libXi @1.6.1_0
- > Cleaning xorg-libXi
- > Uninstalling xorg-libXi @1.6.1_0
- > Cleaning xorg-libXi
- > Deactivating xorg-libXext @1.3.1_0
- > Cleaning xorg-libXext
- > Uninstalling xorg-libXext @1.3.1_0
- > Cleaning xorg-libXext
- > Deactivating xorg-libxkbui @1.0.2_0
- > Cleaning xorg-libxkbui
- > Uninstalling xorg-libxkbui @1.0.2_0
- > Cleaning xorg-libxkbui
- > Deactivating xorg-libXt @1.1.3_0
- > Cleaning xorg-libXt
- > Uninstalling xorg-libXt @1.1.3_0
- > Cleaning xorg-libXt
- > Deactivating xorg-libxkbfile @1.0.8_0
- > Cleaning xorg-libxkbfile
- > Uninstalling xorg-libxkbfile @1.0.8_0
- > Cleaning xorg-libxkbfile
- > Deactivating xorg-libX11 @1.5.0_0
- > Cleaning xorg-libX11
- > Uninstalling xorg-libX11 @1.5.0_0
- > Cleaning xorg-libX11
- > Deactivating xorg-libxcb @1.9_0+python27
- > Cleaning xorg-libxcb
- > Uninstalling xorg-libxcb @1.9_0+python27
- > Cleaning xorg-libxcb
- > Deactivating xorg-xcb-proto @1.8_0+python27
- > Cleaning xorg-xcb-proto
- > Uninstalling xorg-xcb-proto @1.8_0+python27
- > Cleaning xorg-xcb-proto
- > Deactivating python27 @2.7.2_3
- > Cleaning python27
- > Uninstalling python27 @2.7.2_3
- > Cleaning python27
- > Deactivating bzip2 @1.0.6_0
- > Cleaning bzip2
- > Uninstalling bzip2 @1.0.6_0
- > Cleaning bzip2
- > Deactivating curl @7.23.1_0+ssl
- > Cleaning curl
- > Uninstalling curl @7.23.1_0+ssl
- > Cleaning curl
- > Deactivating curl-ca-bundle @7.23.1_0
- > Cleaning curl-ca-bundle
- > Uninstalling curl-ca-bundle @7.23.1_0
- > Cleaning curl-ca-bundle
- > Deactivating db46 @4.6.21_6
- > Cleaning db46
- > Uninstalling db46 @4.6.21_6
- > Cleaning db46
Warning: Failed to open Portfile from registry for p5.12-error @0.170.160_3
Warning: Failed to execute portfile from registry for p5.12-error @0.170.160_3
- > Deactivating p5.12-error @0.170.160_3
- > Uninstalling p5.12-error @0.170.160_3
- > Deactivating pkgconfig @0.26_1
- > Cleaning pkgconfig
- > Uninstalling pkgconfig @0.26_1
- > Cleaning pkgconfig
- > Deactivating glib2 @2.30.2_2
- > Cleaning glib2
- > Uninstalling glib2 @2.30.2_2
- > Cleaning glib2
- > Deactivating perl5 @5.12.3_1+perl5_12
- > Cleaning perl5
- > Uninstalling perl5 @5.12.3_1+perl5_12
- > Cleaning perl5
- > Deactivating perl5.12 @5.12.3_3
- > Cleaning perl5.12
- > Uninstalling perl5.12 @5.12.3_3
- > Cleaning perl5.12
- > Deactivating gdbm @1.10_1
- > Cleaning gdbm
- > Uninstalling gdbm @1.10_1
- > Cleaning gdbm
- > Deactivating libidn @1.22_0
- > Cleaning libidn
- > Uninstalling libidn @1.22_0
- > Cleaning libidn
- > Deactivating rsync @3.0.8_1
- > Cleaning rsync
- > Uninstalling rsync @3.0.8_1
- > Cleaning rsync
- > Deactivating popt @1.16_0
- > Cleaning popt
- > Uninstalling popt @1.16_0
- > Cleaning popt
- > Deactivating libxml2 @2.8.0_0
- > Cleaning libxml2
- > Uninstalling libxml2 @2.8.0_0
- > Cleaning libxml2
- > Deactivating xz @5.0.3_0
- > Cleaning xz
- > Uninstalling xz @5.0.3_0
- > Cleaning xz
- > Deactivating gettext @0.18.1.1_2
- > Cleaning gettext
- > Uninstalling gettext @0.18.1.1_2
- > Cleaning gettext
- > Uninstalling expat @2.0.1_1
- > Cleaning expat
- > Deactivating expat @2.1.0_0
- > Cleaning expat
- > Uninstalling expat @2.1.0_0
- > Cleaning expat
- > Deactivating gperf @3.0.4_2
- > Cleaning gperf
- > Uninstalling gperf @3.0.4_2
- > Cleaning gperf
- > Deactivating tiff @3.9.7_0
- > Cleaning tiff
- > Uninstalling tiff @3.9.7_0
- > Cleaning tiff
- > Deactivating jpeg @8d_0
- > Cleaning jpeg
- > Uninstalling jpeg @8d_0
- > Cleaning jpeg
- > Deactivating sqlite3 @3.7.9_0
- > Cleaning sqlite3
- > Uninstalling sqlite3 @3.7.9_0
- > Cleaning sqlite3
- > Deactivating libedit @20110802-3.0_0
- > Cleaning libedit
- > Uninstalling libedit @20110802-3.0_0
- > Cleaning libedit
- > Deactivating libffi @3.0.10_2
- > Cleaning libffi
- > Uninstalling libffi @3.0.10_2
- > Cleaning libffi
- > Deactivating libiconv @1.14_0
- > Cleaning libiconv
- > Uninstalling libiconv @1.14_0
- > Cleaning libiconv
- > Deactivating libpng @1.5.13_0
- > Cleaning libpng
- > Uninstalling libpng @1.5.13_0
- > Cleaning libpng
- > Deactivating libuninameslist @20091231_0
- > Cleaning libuninameslist
- > Uninstalling libuninameslist @20091231_0
- > Cleaning libuninameslist
- > Deactivating ncurses @5.9_1
- > Cleaning ncurses
- > Uninstalling ncurses @5.9_1
- > Cleaning ncurses
- > Deactivating ncursesw @5.8_0
- > Cleaning ncursesw
- > Uninstalling ncursesw @5.8_0
- > Cleaning ncursesw
- > Deactivating openssl @1.0.0e_1
- > Cleaning openssl
- > Uninstalling openssl @1.0.0e_1
- > Cleaning openssl
- > Deactivating python_select @0.3_1
- > Cleaning python_select
- > Uninstalling python_select @0.3_1
- > Cleaning python_select
- > Deactivating xorg-inputproto @2.2_0
- > Cleaning xorg-inputproto
- > Uninstalling xorg-inputproto @2.2_0
- > Cleaning xorg-inputproto
- > Deactivating xorg-kbproto @1.0.6_0
- > Cleaning xorg-kbproto
- > Uninstalling xorg-kbproto @1.0.6_0
- > Cleaning xorg-kbproto
- > Deactivating xorg-libsm @1.2.1_0
- > Cleaning xorg-libsm
- > Uninstalling xorg-libsm @1.2.1_0
- > Cleaning xorg-libsm
- > Deactivating xorg-libice @1.0.8_0
- > Cleaning xorg-libice
- > Uninstalling xorg-libice @1.0.8_0
- > Cleaning xorg-libice
- > Deactivating xorg-libpthread-stubs @0.3_0
- > Cleaning xorg-libpthread-stubs
- > Uninstalling xorg-libpthread-stubs @0.3_0
- > Cleaning xorg-libpthread-stubs
- > Deactivating xorg-libXau @1.0.7_0
- > Cleaning xorg-libXau
- > Uninstalling xorg-libXau @1.0.7_0
- > Cleaning xorg-libXau
- > Deactivating xorg-libXdmcp @1.1.1_0
- > Cleaning xorg-libXdmcp
- > Uninstalling xorg-libXdmcp @1.1.1_0
- > Cleaning xorg-libXdmcp
- > Deactivating xorg-xextproto @7.2.1_0
- > Cleaning xorg-xextproto
- > Uninstalling xorg-xextproto @7.2.1_0
- > Cleaning xorg-xextproto
- > Deactivating xorg-xproto @7.0.23_0
- > Cleaning xorg-xproto
- > Uninstalling xorg-xproto @7.0.23_0
- > Cleaning xorg-xproto
- > Uninstalling zlib @1.2.5_0
- > Cleaning zlib
- > Deactivating zlib @1.2.7_0
- > Cleaning zlib
- > Uninstalling zlib @1.2.7_0
- > Cleaning zlib
suiren:~ jkaneko$ sudo rm -rf \
> /opt/local \
> /Applications/DarwinPorts \
> /Applications/MacPorts \
> /Library/LaunchDaemons/org.macports.* \
> /Library/Receipts/DarwinPorts*.pkg \
> /Library/Receipts/MacPorts*.pkg \
> /Library/StartupItems/DarwinPortsStartup \
> /Library/Tcl/darwinports1.0 \
> /Library/Tcl/macports1.0 \
> ~/.macports
Password: