WEB开发网
开发学院软件开发C语言 c#扩展方法奇思妙用变态篇二:封装 if/else、swit... 阅读

c#扩展方法奇思妙用变态篇二:封装 if/else、swith/case及while

 2010-09-30 20:46:12 来源:WEB开发网   
核心提示: 我们把这种方式用扩展方法来完成: public static TOutput Switch<TOutput, TInput>(this TInput input, IEnumerable<TInput> inputSource, IEnumerable<TOutpu

我们把这种方式用扩展方法来完成:

        public static  TOutput Switch<TOutput, TInput>(this TInput input, IEnumerable<TInput> inputSource, IEnumerable<TOutput> outputSource, TOutput defaultOutput)
        {
            IEnumerator<TInput> inputIterator = inputSource.GetEnumerator();
            IEnumerator<TOutput> outputIterator = outputSource.GetEnumerator();

            TOutput result = defaultOutput;
            while (inputIterator.MoveNext())
            {
                if (outputIterator.MoveNext())
                {
                    if (input.Equals(inputIterator.Current))
                    {
                        result = outputIterator.Current;
                        break;
                    }
                }
                else break;
            }
            return result;
        }

下面的Test5是调用:

        public static void Test5()
        {
            string englishName = "apple";
            string chineseName = englishName.Switch(
                new string[] { "apple", "orange", "banana", "pear" },
                new string[] { "苹果", "桔子", "香蕉", "梨" },
                "未知"
                );
            Console.WriteLine(chineseName);
        }

上一页  1 2 3 4 5 6  下一页

Tags:扩展 方法 奇思

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接