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

我希望你是我獨家記憶

一段永遠封存的記憶,隨風而去
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>
            一区二区电影免费观看| 国产欧美日韩亚洲| 一区二区电影免费在线观看| 欧美黄在线观看| 久久综合九色综合欧美狠狠| 久久久综合网| 亚洲高清资源综合久久精品| 欧美激情一区在线| 亚洲欧洲精品一区二区三区不卡| 日韩一区二区精品| 国产热re99久久6国产精品| 国产欧美91| 在线观看视频亚洲| 一本色道久久88综合亚洲精品ⅰ| 亚洲一区二区在| 久久久噜噜噜久久久| 欧美大尺度在线| 亚洲私人影院在线观看| 欧美制服丝袜| 欧美日本国产在线| 国产亚洲欧美aaaa| 亚洲精品国产无天堂网2021| 午夜精品亚洲| 亚洲高清不卡一区| 亚洲精品在线视频观看| 欧美一区二区三区视频免费播放| 久久免费观看视频| 国产精品日韩一区二区| 在线激情影院一区| 午夜精品久久久久久久99樱桃| 久久久中精品2020中文| 亚洲狼人综合| 老司机午夜精品视频| 国产精品呻吟| 日韩一级不卡| 久久亚洲精品一区| 亚洲一区二区免费视频| 欧美精品九九99久久| 国产综合色精品一区二区三区| 中国成人黄色视屏| 欧美国产免费| 久久精品一区二区三区中文字幕| 国产精品99免视看9| 欧美一区二区三区四区在线| 欧美高清在线一区| 黄色工厂这里只有精品| 亚洲午夜三级在线| 亚洲片国产一区一级在线观看| 午夜久久福利| 国产精品美女久久久久久2018 | 老司机aⅴ在线精品导航| 国产精品每日更新在线播放网址| 99视频精品| 最近中文字幕日韩精品| 六月丁香综合| 亚洲国产一区在线| 久久色中文字幕| 欧美在线一区二区三区| 国产欧美一级| 久久都是精品| 欧美一区二区三区的| 国产主播一区二区三区| 欧美主播一区二区三区| 欧美一区二区三区成人| 狠狠久久亚洲欧美| 久久综合网络一区二区| 欧美一区二区在线免费播放| 国产日产欧产精品推荐色 | 欧美国产在线视频| 久久综合婷婷| 亚洲精品免费在线| 亚洲日本中文字幕区| 欧美激情综合亚洲一二区| aa亚洲婷婷| 亚洲天堂网在线观看| 国产精品在线看| 欧美日韩专区在线| 亚洲色图在线视频| 亚洲一区二区在线看| 国产色爱av资源综合区| 毛片一区二区三区| 欧美国产日韩精品| 亚洲综合成人在线| 久久国产乱子精品免费女 | 国产精品成人国产乱一区| 午夜视黄欧洲亚洲| 久久久久欧美| 日韩午夜在线| 亚洲一二三区视频在线观看| 黄色一区二区在线| 亚洲人成在线免费观看| 国产精品视频精品| 欧美激情一区二区三区| 国产精品久久一区二区三区| 麻豆精品精华液| 国产精品久久久久久超碰| 玖玖视频精品| 国产精品日产欧美久久久久| 欧美3dxxxxhd| 国产精品女人久久久久久| 毛片av中文字幕一区二区| 欧美视频在线观看免费| 欧美成人自拍视频| 国产精品乱子乱xxxx| 欧美韩日一区| 国产亚洲精品久久飘花| 亚洲免费观看在线观看| 精品成人乱色一区二区| 一本色道久久综合亚洲精品高清| 狠狠狠色丁香婷婷综合激情| 亚洲视频axxx| 亚洲全部视频| 久久精品五月婷婷| 欧美一区二区久久久| 欧美日韩免费一区二区三区视频| 欧美少妇一区| 欧美国产日韩一二三区| 国产日韩欧美综合精品| 日韩亚洲精品视频| 久久亚洲一区二区| 农夫在线精品视频免费观看| 久久亚洲综合| 国产一区二区日韩精品欧美精品| 欧美大片va欧美在线播放| 午夜日韩在线| 日韩亚洲综合在线| 狠狠色综合网| 国产精品福利网站| 欧美精品123区| 一区二区三区久久久| 亚洲无限av看| 欧美性事免费在线观看| 亚洲精品一二区| 免费成人你懂的| 最新国产精品拍自在线播放| 午夜一区二区三区在线观看| 久久人人爽人人爽| 欧美高清在线一区二区| **性色生活片久久毛片| 欧美日韩中文字幕综合视频| 久久久久一区二区三区| 亚洲主播在线观看| 蜜臀久久99精品久久久久久9 | 亚洲日本电影在线| 欧美成人一区二区| 亚洲国产中文字幕在线观看| 亚洲欧美综合精品久久成人 | 99www免费人成精品| 国产午夜精品一区理论片飘花| 另类图片综合电影| 欧美激情精品久久久久久久变态| 久久精品官网| 蜜桃av一区二区| 国产精品推荐精品| 国产午夜亚洲精品羞羞网站| 一区免费观看视频| 亚洲欧洲在线一区| 一区二区三区四区五区视频| 亚洲伊人第一页| 久久漫画官网| 在线一区观看| 久久国产黑丝| 国产精品视频内| 亚洲三级毛片| 欧美xx69| 亚洲欧美高清| 欧美日韩精品一区二区在线播放| 一区二区三区欧美| 日韩写真视频在线观看| 亚洲欧美综合一区| 欧美激情精品久久久六区热门| 欧美va亚洲va日韩∨a综合色| 国产亚洲精品久久久久久| 欧美福利一区| 欧美精品色网| 亚洲欧美精品在线观看| 欧美成在线视频| 亚洲一区二区黄色| 国产资源精品在线观看| 欧美成人亚洲成人日韩成人| 亚洲午夜精品在线| 欧美国产日韩二区| 欧美在线播放一区| 夜夜爽夜夜爽精品视频| 国产一区二区三区免费在线观看| 欧美大片在线看| 亚洲欧美日韩在线不卡| 亚洲国产精品久久| 久久精品日产第一区二区| 一区二区三区不卡视频在线观看| 国产日韩一区| 国产精品久久久免费| 欧美国产视频在线观看| 久久精品免费观看| 亚洲欧美日韩国产一区| 99精品国产99久久久久久福利| 欧美v日韩v国产v| 久久精品91久久久久久再现| 亚洲一区二区三区在线| 一本色道久久综合狠狠躁篇的优点|