ウィンドウ位置・サイズを記憶する

プロジェクトのプロパティで次のように設定する。


  • 復元
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)
}

標準的な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: a831fa866d46cbee94e61a09af15f9dd95987421

Groovy: 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 アンインストール

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: