青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我希望你是我獨家記憶

一段永遠封存的記憶,隨風而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

ICustomFormatter, IFormatProvider

Posted on 2009-07-06 15:58 Hero 閱讀(501) 評論(0)  編輯 收藏 引用 所屬分類: C#積累
  1 // Sample for the IFormatProvider interface and
  2 // the IFormatProvider.GetFormat( Type ) method.
  3 using System;
  4 
  5 // This class implements the "Ra" formatting code. An instance of this 
  6 // class should be passed to methods requiring an IFormatProvider.
  7 public class AnyRadix : ICustomFormatter, IFormatProvider
  8 {
  9     // The value to be formatted is returned as a signed string 
 10     // of digits from the rDigits array. 
 11     const string radixCode = "Ra";
 12     private static char[] rDigits = {
 13         '0''1''2''3''4''5''6''7''8''9'
 14         'A''B''C''D''E''F''G''H''I''J'
 15         'K''L''M''N''O''P''Q''R''S''T'
 16         'U''V''W''X''Y''Z' };
 17         
 18     // This method returns an object that implements ICustomFormatter 
 19     // to do the formatting. 
 20     public object GetFormat( Type argType )
 21     {
 22         // Here, the same object (this) is returned, but it would 
 23         // be possible to return an object of a different type.
 24         if ( argType == typeof( ICustomFormatter ) )
 25             return this;
 26         else
 27             return null;
 28     } 
 29         
 30     // This method does the formatting only if it recognizes the 
 31     // format codes. 
 32     public string Format( string formatString, 
 33         object argToBeFormatted, IFormatProvider provider )
 34     {
 35         // If no format string is provided or the format string cannot 
 36         // be handled, use IFormattable or standard string processing.
 37         if( formatString == null || 
 38             ! formatString.Trim( ).StartsWith( radixCode ) )
 39         {
 40             if( argToBeFormatted is IFormattable )//按照系統默認格式
 41                 return ( (IFormattable)argToBeFormatted ).ToString( formatString, provider );
 42             else
 43                 return argToBeFormatted.ToString( );
 44         }
 45 
 46         // The formatting is handled here.
 47         int     digitIndex = 0;
 48         long    radix;
 49         long    longToBeFormatted;
 50         long    longPositive;
 51         char[ ] outDigits = new char63 ];
 52             
 53         // Extract the radix from the format string.
 54         formatString = formatString.Replace( radixCode, "" );
 55         try
 56         {
 57             radix = Convert.ToInt64( formatString );
 58         }
 59         catch( Exception ex )
 60         {
 61             throw new ArgumentException( String.Format( 
 62                 "The radix \"{0}\" is invalid."
 63                 formatString ), ex );
 64         }
 65 
 66         // Verify that the radix is in the proper range.
 67         if( radix <2 || radix > 36 )
 68             throw new ArgumentException( String.Format( 
 69                 "The radix \"{0}\" is not in the range 2..36."
 70                 formatString ) );
 71             
 72         // Verify that the argument can be converted to a long integer.
 73         try
 74         {
 75             longToBeFormatted = (long)argToBeFormatted;
 76         }
 77         catch( Exception ex )
 78         {
 79             throw new ArgumentException( String.Format(
 80                 "The argument \"{0}\" cannot be " +
 81                 "converted to an integer value."
 82                 argToBeFormatted ), ex );
 83         }
 84             
 85         // Extract the magnitude for conversion.
 86         longPositive = Math.Abs( longToBeFormatted );
 87 
 88         // Convert the magnitude to a digit string.
 89         for( digitIndex = 0; digitIndex <= 64; digitIndex++ )
 90         {
 91             if( longPositive == 0 ) break;
 92 
 93             outDigits[ outDigits.Length - digitIndex - 1 ] = 
 94                 rDigits[ longPositive % radix ];
 95             longPositive /= radix;
 96         }
 97             
 98         // Add a minus sign if the argument is negative.
 99         if( longToBeFormatted < 0 )
100             outDigits[ outDigits.Length - digitIndex++ - 1 ] = 
101                 '-';
102 
103         return new string( outDigits, 
104             outDigits.Length - digitIndex, digitIndex );
105     } 
106 
107 
108 class IFormatProviderDemo
109 {
110     static void ConvertToAnyRadix( object argToConvert, 
111         string formatStr )
112     {
113         AnyRadix    provider = new AnyRadix( );
114         string      messageStr = 
115             String.Format( "{{0:{0}}}", formatStr );
116 
117         // Write the first part of the output line.
118         Console.Write( "{0,18}  {1,-6}", argToConvert, formatStr );
119 
120         // Convert the specified argument using the specified format.
121         try
122         {
123             Console.WriteLine( String.Format( 
124                 provider, messageStr, argToConvert ) );
125         }
126         catch( Exception ex )
127         {
128             // Display the exception without the stack trace.
129             int lineEnd = ex.ToString( ).IndexOf( '\n' );
130             Console.WriteLine( "{0}\n",
131                 ex.ToString( ).Substring( 0, lineEnd ) );
132         }
133     } 
134         
135     static void Main( )
136     {
137         long twoToThe32 = 4294967296;
138         long fifteenNines = 999999999999999;
139             
140         Console.WriteLine(
141             "This example of the IFormatProvider interface \n" +
142             "and the IFormatProvider.GetFormat( Type ) method " +
143             "\ngenerates the following output.\n" );
144         Console.WriteLine( "{0,18} Format Result""Number" );
145         Console.WriteLine( "{0,18} ------ ------""------" );
146             
147         // These are valid conversions.
148         ConvertToAnyRadix( twoToThe32, "Ra2" );
149         ConvertToAnyRadix( twoToThe32, "Ra5" );
150         ConvertToAnyRadix( twoToThe32, "Ra16" );
151         ConvertToAnyRadix( twoToThe32, "Ra23" );
152         ConvertToAnyRadix( twoToThe32, "Ra36" );
153         ConvertToAnyRadix( fifteenNines, "Ra2" );
154         ConvertToAnyRadix( fifteenNines, "Ra3" );
155         ConvertToAnyRadix( fifteenNines, "Ra8" );
156         ConvertToAnyRadix( fifteenNines, "Ra11" );
157         ConvertToAnyRadix( fifteenNines, "Ra16" );
158         ConvertToAnyRadix( fifteenNines, "Ra23" );
159         ConvertToAnyRadix( fifteenNines, "Ra36" );
160         ConvertToAnyRadix( fifteenNines, "E16" );
161         ConvertToAnyRadix( fifteenNines, "" );
162             
163         // These are error conditions.
164         ConvertToAnyRadix( fifteenNines, "Ra37" );
165         ConvertToAnyRadix( "ABCDEFGHIJKLM""Ra16" );
166     } 
167 
168 
169 /*
170 This example of the IFormatProvider interface
171 and the IFormatProvider.GetFormat( Type ) method
172 generates the following output.
173 
174             Number Format Result
175             ------ ------ ------
176         4294967296  Ra2   100000000000000000000000000000000
177         4294967296  Ra5   32244002423141
178         4294967296  Ra16  100000000
179         4294967296  Ra23  1606K7IC
180         4294967296  Ra36  1Z141Z4
181    999999999999999  Ra2   11100011010111111010100100110001100111111111111111
182    999999999999999  Ra3   11212010201001210101011021212000
183    999999999999999  Ra8   34327724461477777
184    999999999999999  Ra11  26A6A3689065639
185    999999999999999  Ra16  38D7EA4C67FFF
186    999999999999999  Ra23  1134DIFHLMM4
187    999999999999999  Ra36  9UGXNORJLR
188    999999999999999  E16   9.9999999999999900E+014
189    999999999999999        999999999999999
190    999999999999999  Ra37  System.ArgumentException: The radix "37" is not in th
191 e range 2..36.
192 
193      ABCDEFGHIJKLM  Ra16  System.ArgumentException: The argument "ABCDEFGHIJKLM
194 " cannot be converted to an integer value. ---> System.InvalidCastException: Sp
195 ecified cast is not valid.
196 */
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情视频在线免费观看 欧美视频免费一 | 国产精品99免视看9| 99国产精品国产精品久久| 亚洲激情成人| 欧美日韩国产黄| 亚洲综合好骚| 欧美在线你懂的| 亚洲精品一区二区三区不| 亚洲日本欧美| 国产毛片精品视频| 卡通动漫国产精品| 欧美精品在线一区二区| 亚洲欧美日本在线| 久久久久久一区二区三区| 亚洲精品免费观看| 午夜精品亚洲| 99精品欧美一区二区三区| 亚洲综合国产精品| 亚洲精品影视在线观看| 亚洲综合视频一区| 亚洲国产日韩欧美一区二区三区| 亚洲另类黄色| 国内精品免费午夜毛片| 日韩视频一区二区三区在线播放| 国产模特精品视频久久久久| 欧美 日韩 国产 一区| 国产精品国产精品| 欧美福利精品| 国产午夜精品全部视频在线播放 | 亚洲最新视频在线播放| 欧美在线观看天堂一区二区三区 | 国产精品劲爆视频| 亚洲第一精品夜夜躁人人躁| 国产精品高潮在线| 亚洲国产片色| 一区二区三区在线不卡| 亚洲午夜av| 一区二区国产日产| 久热精品在线视频| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩成人激情| 亚洲第一页在线| 狠狠入ady亚洲精品| 亚洲综合视频在线| 亚洲一区二区三区久久| 欧美高清免费| 欧美黄免费看| 在线免费日韩片| 久久精品久久综合| 久久久精品午夜少妇| 国产精品一区二区在线| 这里只有精品在线播放| 99在线精品免费视频九九视| 免费试看一区| 亚洲国产精品嫩草影院| 影视先锋久久| 久久久在线视频| 欧美.com| 亚洲免费黄色| 欧美日本韩国一区| 亚洲精品一区在线观看| 在线性视频日韩欧美| 欧美裸体一区二区三区| 亚洲精选视频在线| 一区二区三区福利| 欧美午夜欧美| 亚洲欧美成人一区二区在线电影| 亚洲欧美日韩精品| 国产欧美日本| 久久久噜噜噜久久久| 欧美成在线视频| 9人人澡人人爽人人精品| 欧美人与性禽动交情品| 亚洲最新视频在线| 欧美一区二区精品久久911| 国产亚洲一区二区在线观看| 欧美专区在线观看| 亚洲高清在线播放| 中文av一区特黄| 国产欧美日韩精品专区| 久久久久欧美精品| 亚洲人体一区| 欧美中文在线观看国产| 亚洲高清久久| 欧美午夜无遮挡| 亚洲欧美日韩直播| 麻豆精品在线视频| 中文国产一区| 国产自产在线视频一区| 欧美高清在线播放| 亚洲视频欧美在线| 欧美1级日本1级| 亚洲欧美日韩另类| 亚洲国产高清在线| 国产精品人人爽人人做我的可爱| 欧美一区二区三区四区在线观看地址 | 久久手机免费观看| 亚洲每日更新| 毛片基地黄久久久久久天堂| 在线视频中文亚洲| 激情成人亚洲| 欧美午夜激情视频| 狂野欧美激情性xxxx| 一区二区三区日韩欧美| 美女网站在线免费欧美精品| 国产精品99久久久久久久久| 狠狠色丁香久久婷婷综合丁香| 欧美片网站免费| 久久精品日韩欧美| 亚洲综合导航| 99re热这里只有精品视频| 蜜臀av国产精品久久久久| 亚洲欧美另类在线| 99re热这里只有精品视频| 伊人蜜桃色噜噜激情综合| 国产精品欧美一区二区三区奶水 | 欧美激情国产日韩精品一区18| 亚洲——在线| 一本大道久久精品懂色aⅴ| 欧美大片在线观看一区| 久久精品最新地址| 午夜精品免费视频| 亚洲一区二区av电影| 亚洲精品综合久久中文字幕| 今天的高清视频免费播放成人 | 国产精品亚洲网站| 欧美日韩激情小视频| 免费在线观看日韩欧美| 久久久久久久久久久久久9999| 亚洲摸下面视频| 亚洲一区二区三区精品动漫| 日韩亚洲在线| 亚洲蜜桃精久久久久久久 | 香蕉免费一区二区三区在线观看| 99re6热在线精品视频播放速度 | 国产精品一区二区久激情瑜伽| 欧美日韩三级在线| 欧美日韩国产成人在线免费| 欧美大色视频| 欧美高潮视频| 欧美日韩国产在线播放网站| 欧美日韩精品免费在线观看视频| 欧美激情一区二区三区在线视频| 免费影视亚洲| 欧美美女bb生活片| 欧美视频一区二区三区在线观看| 欧美视频一区二区三区| 国产精品久久久99| 国产亚洲成av人在线观看导航| 国产日韩欧美日韩| 精品69视频一区二区三区 | 欧美视频在线一区| 国产精品欧美经典| 国产一区二区无遮挡| 国内精品福利| 亚洲人成在线播放网站岛国| 99视频有精品| 欧美一区2区三区4区公司二百| 欧美一区二区三区日韩视频| 久久婷婷国产综合尤物精品| 麻豆国产va免费精品高清在线| 亚洲国产成人精品久久| 亚洲免费观看高清完整版在线观看熊 | 国产欧美日韩在线播放| 激情一区二区| 一区二区免费在线播放| 西西裸体人体做爰大胆久久久| 久久狠狠婷婷| 欧美丰满少妇xxxbbb| 夜夜嗨av一区二区三区四区| 午夜精品久久久久久久男人的天堂| 久久精品国内一区二区三区| 欧美精品v国产精品v日韩精品| 国产精品国产三级国产aⅴ入口 | 在线视频一区观看| 久久免费国产精品1| 亚洲精品乱码久久久久久| 亚洲在线黄色| 欧美肥婆在线| 国产视频在线一区二区| 亚洲美女黄网| 久久久久久电影| 亚洲毛片在线| 久久视频在线看| 国产精品一二三四| 日韩视频第一页| 久久亚洲一区| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久久久国产一区二区| 国产精品久久久久久久久果冻传媒| 极品中文字幕一区| 欧美一区二区三区久久精品| 最新日韩中文字幕| 久久久久久香蕉网| 国产日韩亚洲欧美精品| 亚洲一卡二卡三卡四卡五卡| 欧美电影免费观看大全| 欧美一二三区精品| 国产精品日日摸夜夜添夜夜av| 亚洲美女精品成人在线视频|