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

我希望你是我獨家記憶

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

ICustomFormatter, IFormatProvider

Posted on 2009-07-06 15:58 Hero 閱讀(506) 評論(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>
            狠狠色狠狠色综合日日五| 久久蜜臀精品av| 午夜亚洲伦理| 国产精品少妇自拍| 久久99伊人| 久久国产精品高清| 极品少妇一区二区三区精品视频| 久久精品官网| 免费成人高清在线视频| 亚洲精品裸体| 一区二区三区四区五区视频| 国产精品一区一区| 久热精品视频在线观看一区| 美女性感视频久久久| 亚洲一区视频在线| 久久国产天堂福利天堂| 久久久久久久久久久久久久一区 | 亚洲人成人99网站| 欧美日韩一区二区三区四区在线观看| 这里只有精品在线播放| 久久超碰97人人做人人爱| 99视频一区二区三区| 性色av一区二区三区在线观看| 亚洲精品男同| 亚洲欧美日韩国产综合在线 | 亚洲性视频h| 欧美激情一区二区三区在线视频观看 | 欧美精品观看| 久久综合中文色婷婷| 欧美日韩成人一区| 欧美国产视频在线| 国内综合精品午夜久久资源| 午夜精品国产更新| 欧美一区二区黄| 国产欧美日韩不卡免费| 亚洲欧美日韩综合| 欧美专区在线播放| 国产乱码精品| 久久婷婷av| 亚洲国产日本| 亚洲影视在线| 国产日韩免费| 理论片一区二区在线| 欧美激情亚洲自拍| 亚洲一区二区四区| 国产午夜精品全部视频在线播放 | 亚洲欧美国产日韩中文字幕| 国产精品成人在线| 欧美亚洲免费在线| 欧美国产日韩a欧美在线观看| 日韩视频一区二区在线观看| 欧美三级小说| 久久亚洲精品一区| 亚洲一区精品电影| 亚洲高清123| 久久米奇亚洲| 中文欧美日韩| 亚洲区中文字幕| 国产丝袜美腿一区二区三区| 欧美人与性动交α欧美精品济南到| 中文久久精品| 亚洲精品久久久久久久久久久久久 | 亚洲调教视频在线观看| 在线日韩一区二区| 国际精品欧美精品| 欧美午夜a级限制福利片| 美女国内精品自产拍在线播放| 日韩一级欧洲| 亚洲精选在线| 亚洲久久一区| 亚洲精品专区| 一本一本久久a久久精品综合妖精| 欧美成人a∨高清免费观看| 午夜宅男欧美| 亚洲自拍偷拍福利| 亚洲欧美资源在线| 国产精品视频精品| 一区二区三区四区在线| 亚洲欧洲另类| 一本大道久久精品懂色aⅴ| 亚洲福利视频二区| 欧美激情在线有限公司| 亚洲国产精品一区二区三区| 免费久久99精品国产| 欧美成人午夜剧场免费观看| 男人插女人欧美| 亚洲欧洲日韩综合二区| 亚洲精品欧美日韩专区| 一本大道久久a久久精品综合| 中文国产成人精品| 久久精品噜噜噜成人av农村| 久久久久久亚洲精品杨幂换脸| 久久综合导航| 国产精品第一区| 亚洲国产日韩综合一区| 亚洲欧美精品一区| 亚洲国产美女| 久久精品国产69国产精品亚洲| 欧美大片免费| 国产一区二区三区四区| 99热这里只有成人精品国产| 欧美一区二区视频免费观看| 最新国产成人在线观看| 欧美一区二区三区精品电影| 欧美日韩国产一区二区| 亚洲国产高潮在线观看| 亚洲欧美日韩在线综合| 欧美激情精品久久久久久黑人| 亚洲视频电影图片偷拍一区| 欧美丰满少妇xxxbbb| 国产午夜精品视频免费不卡69堂| 在线一区二区日韩| 亚洲国产欧美一区二区三区同亚洲| 羞羞漫画18久久大片| 国产精品一区久久| 久久www成人_看片免费不卡| 亚洲天堂黄色| 国产情侣久久| 久久人人爽人人爽| 老司机免费视频一区二区| 亚洲黑丝在线| 日韩亚洲综合在线| 国产精品你懂的在线| 香蕉久久精品日日躁夜夜躁| 欧美伊人影院| 亚洲人成网站色ww在线| 宅男噜噜噜66国产日韩在线观看| 欧美日韩中文字幕| 久久久高清一区二区三区| 久久免费观看视频| 99在线|亚洲一区二区| 日韩午夜在线电影| 国产婷婷色一区二区三区| 欧美成人精品三级在线观看| 欧美日韩国产小视频在线观看| 午夜精品久久久久久久白皮肤| 久久久爽爽爽美女图片| 中文高清一区| 欧美成人精品三级在线观看| 一区二区三区欧美在线| 欧美在线观看网址综合| 一区二区三区免费在线观看| 久久免费一区| 久久免费国产精品| 欧美日韩1080p| 亚洲欧洲一区| 91久久午夜| 欧美a一区二区| 免费久久99精品国产自在现线| 国产美女精品免费电影| 一区二区三区不卡视频在线观看| 亚洲国产乱码最新视频| 久久激情综合网| 裸体歌舞表演一区二区| 狠狠色狠狠色综合日日五| 亚洲天堂男人| 久久大香伊蕉在人线观看热2| 欧美日韩在线不卡| 午夜宅男久久久| 欧美亚洲色图校园春色| 国产欧美日韩亚洲一区二区三区 | 亚洲精品永久免费精品| 欧美成人精品在线| 亚洲图片欧美日产| 久久久久国产精品www| 国内成人在线| 欧美国产极速在线| 国产亚洲欧洲一区高清在线观看| 亚洲天堂免费观看| 鲁大师影院一区二区三区| 最新国产精品拍自在线播放| 国产精品swag| 蜜臀av国产精品久久久久| 99视频精品全部免费在线| 久久成人资源| 午夜精品久久久久久久久久久| 国产一区日韩一区| 欧美午夜a级限制福利片| 久久激情综合网| 亚洲欧美日韩天堂| 日韩视频免费在线| 欧美二区在线| 免费在线看一区| 久久久久久久久岛国免费| 亚洲影视中文字幕| 亚洲精选视频免费看| 最新日韩在线视频| 在线免费一区三区| 国产在线视频欧美| 国产女主播在线一区二区| 国产精品高潮呻吟久久av黑人| 噜噜噜91成人网| 免费在线看一区| 欧美国产亚洲精品久久久8v| 欧美成年网站| 欧美视频官网| 国产精品久久久久一区二区| 国产精品羞羞答答| 韩国av一区二区三区| 亚洲国产精品嫩草影院|