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

我希望你是我獨家記憶

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

ICustomFormatter, IFormatProvider

Posted on 2009-07-06 15:58 Hero 閱讀(510) 評論(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>
            国产精品亚洲一区| 国产一级一区二区| 亚洲欧美日韩精品久久亚洲区 | 一本色道久久88亚洲综合88| 欧美日本一道本在线视频| 一区二区三区 在线观看视频| 亚洲欧洲一区二区三区| 欧美福利视频网站| 亚洲特级毛片| 欧美亚洲视频在线观看| 亚洲高清久久久| 亚洲精品一区二区网址| 国产精品九九| 免费黄网站欧美| 欧美剧在线免费观看网站| 亚洲尤物在线视频观看| 欧美一区二区三区在线免费观看 | 国产精品国产亚洲精品看不卡15 | 伊人成人在线| 亚洲精品国产日韩| 国产精品视频导航| 裸体丰满少妇做受久久99精品| 免费人成精品欧美精品| 亚洲毛片播放| 亚洲欧美综合另类中字| 亚洲精品乱码久久久久久黑人| 一区二区三区av| 亚洲国产电影| 亚洲欧美国产视频| 亚洲精品一区二区网址| 欧美亚洲综合在线| 一区二区三区欧美激情| 久久久久亚洲综合| 亚洲欧美国产制服动漫| 久久综合伊人77777蜜臀| 午夜欧美不卡精品aaaaa| 久久先锋资源| 久久国产精品久久久久久电车 | 艳妇臀荡乳欲伦亚洲一区| 国产一区二区三区在线观看免费| 亚洲欧洲三级| ●精品国产综合乱码久久久久| 亚洲一级在线| 亚洲午夜视频| 欧美激情一区二区三区四区| 久久三级视频| 国产婷婷一区二区| 亚洲视频一区二区在线观看| 亚洲美女色禁图| 久久手机精品视频| 久久综合九色综合欧美狠狠| 国产精品视频久久久| 99视频一区二区| 99精品免费视频| 欧美国产激情| 国外成人性视频| 一本色道久久综合| aa成人免费视频| 欧美激情a∨在线视频播放| 免播放器亚洲一区| 玉米视频成人免费看| 久久精品亚洲一区二区三区浴池| 正在播放亚洲一区| 欧美视频观看一区| 一区二区91| 亚洲专区在线视频| 国产精品免费一区豆花| 一区二区三区视频在线播放| 在线亚洲成人| 国产精品国产成人国产三级| 一区二区三区四区国产| 亚洲先锋成人| 国产精品自拍一区| 午夜精彩视频在线观看不卡 | 亚洲国产成人午夜在线一区| 久久久国产亚洲精品| 欧美成人午夜免费视在线看片| 在线观看91精品国产麻豆| 久久综合五月天婷婷伊人| 欧美激情免费观看| 一区二区三区日韩| 国产精品久久久久一区二区| 午夜精品福利一区二区三区av| 久久高清免费观看| 一区在线播放视频| 欧美激情片在线观看| 一本久久综合亚洲鲁鲁| 久久xxxx| 亚洲黄色天堂| 国产精品成人v| 欧美中文字幕久久| 亚洲精品1区| 欧美一级大片在线观看| 在线观看中文字幕不卡| 欧美激情亚洲精品| 亚洲在线播放| 欧美黄色一区| 欧美一区二区视频97| **性色生活片久久毛片| 欧美日韩在线视频观看| 久久成人免费日本黄色| 最新日韩av| 久久久99免费视频| 在线视频日本亚洲性| 国产主播一区二区三区四区| 欧美精品激情在线| 欧美一区二区免费观在线| 亚洲黄色影院| 久久久久久日产精品| 一区二区三区欧美日韩| 在线播放中文一区| 国产精品视频九色porn| 欧美极品aⅴ影院| 欧美一区视频在线| 99热在线精品观看| 欧美高清视频一区二区| 香蕉尹人综合在线观看| 99v久久综合狠狠综合久久| 国模私拍一区二区三区| 国产精品久久久久久久久搜平片 | 亚洲综合色噜噜狠狠| 亚洲国产精品久久久久秋霞影院 | 韩国av一区二区三区四区| 欧美日韩国产另类不卡| 久久深夜福利| 欧美在线你懂的| 亚洲一区观看| 在线一区亚洲| 亚洲精品乱码久久久久久黑人 | 日韩图片一区| 亚洲动漫精品| 欧美 亚欧 日韩视频在线| 久久精品成人欧美大片古装| 亚洲午夜一区二区| 在线亚洲自拍| 夜夜爽www精品| 亚洲免费观看| 日韩视频在线观看国产| 亚洲日韩欧美视频一区| 亚洲电影一级黄| 亚洲国产精品va在线看黑人动漫| 国产尤物精品| 一区二区视频在线观看| 国语自产精品视频在线看8查询8| 国产日本欧美一区二区三区在线| 国产噜噜噜噜噜久久久久久久久| 国产精品啊啊啊| 国产精品日韩一区二区| 国产精品尤物| 国产在线一区二区三区四区| 国产午夜亚洲精品羞羞网站 | 欧美性猛交一区二区三区精品| 欧美日产国产成人免费图片| 欧美另类一区| 国产精品国产三级国产专播精品人 | 欧美视频手机在线| 国产精品麻豆va在线播放| 国产精品免费电影| 国产午夜精品一区二区三区欧美| 国产一区二区三区成人欧美日韩在线观看 | 亚洲另类黄色| 一区二区三区久久精品| 亚洲免费视频一区二区| 欧美在线视频观看免费网站| 久久久久高清| 欧美国产一区二区| 99精品久久久| 性高湖久久久久久久久| 久久综合色天天久久综合图片| 欧美成人精品在线视频| 国产精品高清在线观看| 国产亚洲欧美日韩一区二区| 亚洲私人影吧| 久久全球大尺度高清视频| 欧美精品乱码久久久久久按摩| 欧美视频在线看| 激情五月综合色婷婷一区二区| 亚洲精品免费电影| 销魂美女一区二区三区视频在线| 久久人人97超碰国产公开结果 | 亚洲欧美视频在线观看| 久久久久久综合网天天| 最新日韩在线视频| 亚洲欧美在线一区| 免费永久网站黄欧美| 国产精品乱码一区二三区小蝌蚪| 精品成人国产| 亚洲欧美日韩在线高清直播| 欧美成人精品一区二区| 亚洲调教视频在线观看| 蘑菇福利视频一区播放| 国产精品一二三视频| 亚洲精品综合在线| 久久久久久久综合日本| 一本久道久久综合狠狠爱| 久久久久国产精品麻豆ai换脸| 国产精品porn| 夜夜嗨av一区二区三区中文字幕| 久久久久久久久一区二区| 亚洲视频大全|