Changeset 15976 for lang/csharp

Show
Ignore:
Timestamp:
07/18/08 11:26:04 (4 months ago)
Author:
mayuki
Message:

Strictオプションを追加。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/csharp/CommandLineParser/CommandLineParser/CommandLineParser.cs

    r14991 r15976  
    4040        private String _defaultArgumentsPropertyName = null; 
    4141 
     42        /// <summary> 
     43        /// コマンドラインオプション名の先頭につける文字列を指定します。 
     44        /// </summary> 
    4245        public String Prefix { get; set; } 
     46         
     47        /// <summary> 
     48        /// コマンドラインオプション名で使う区切り文字を指定します。 
     49        /// </summary> 
    4350        public Char Delimiter { get; set; } 
     51         
     52        /// <summary> 
     53        /// コマンドラインオプション名を区切り文字と小文字で構成するかどうかを指定します。 
     54        /// </summary> 
    4455        public Boolean DelimiterizeAndToLowerCase { get; set; } 
     56         
     57        /// <summary> 
     58        /// パラメータ名と値とをつなぐ文字列を指定します。 
     59        /// </summary> 
    4560        public Char[] ValueParamDelimiter { get; set; } 
    46  
     61         
     62        /// <summary> 
     63        /// 不正なコマンドラインオプション以外を許可しないかどうかを指定します。 
     64        /// </summary> 
     65        public Boolean Strict { get; set; } 
     66 
     67        /// <summary> 
     68        /// コマンドラインパーサーのインスタンスを初期化します。 
     69        /// </summary> 
    4770        public CommandLineParser() : this('-') 
    4871        {} 
    4972 
     73        /// <summary> 
     74        /// コマンドラインパーサーのインスタンスを初期化します。 
     75        /// </summary> 
     76        /// <param name="delimiter">コマンドラインオプション名の区切り文字</param> 
    5077        public CommandLineParser(Char delimiter) 
    5178        { 
     
    5481            Prefix = delimiter.ToString() + delimiter; 
    5582            ValueParamDelimiter = new char[] { '=', ':' }; 
     83            Strict = false; 
    5684 
    5785            _type = typeof(T); 
     
    177205                    return default(T); 
    178206                 
    179                 if (!_availableOptions.ContainsKey(memberName) && !_availableOptions.ContainsKey(parts[0])) 
     207                if (Strict && !_availableOptions.ContainsKey(memberName) && !_availableOptions.ContainsKey(parts[0])) 
    180208                { 
    181209                    //Debug.WriteLine(String.Format("Unknown option '{0}'", parts[0])); 
    182                     //throw new ArgumentException("invalid argument", parts[0]); 
    183                     continue; 
     210                    throw new ArgumentException("invalid argument", parts[0]); 
    184211                } 
    185212