OSDN Git Service

C#7.0で追加されたType switchの構文を使用する
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 24 Oct 2016 14:56:41 +0000 (23:56 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 11 Mar 2017 14:29:01 +0000 (23:29 +0900)
OpenTween/Connection/OAuthHandler.cs
OpenTween/FilterDialog.cs
OpenTween/Tween.cs
OpenTween/TweetFormatter.cs

index 37fc089..0e1a3cd 100644 (file)
@@ -59,8 +59,7 @@ namespace OpenTween.Connection
                 this.ConsumerKey, this.ConsumerSecret, this.AccessToken, this.AccessSecret);
             request.Headers.TryAddWithoutValidation("Authorization", credential);
 
-            var postContent = request.Content as FormUrlEncodedContent;
-            if (postContent != null)
+            if (request.Content is FormUrlEncodedContent postContent)
             {
                 request.Content = new StringContent(MyCommon.BuildQueryString(query), Encoding.UTF8, "application/x-www-form-urlencoded");
                 postContent.Dispose();
@@ -77,8 +76,7 @@ namespace OpenTween.Connection
         {
             var parameters = Enumerable.Empty<KeyValuePair<string, string>>();
 
-            var postContent = content as FormUrlEncodedContent;
-            if (postContent != null)
+            if (content is FormUrlEncodedContent postContent)
             {
                 var query = await postContent.ReadAsStringAsync()
                     .ConfigureAwait(false);
index 03176e0..d7a86e5 100644 (file)
@@ -99,8 +99,7 @@ namespace OpenTween
 
             var tab = _sts.Tabs[tabName];
 
-            var filterTab = tab as FilterTabModel;
-            if (filterTab != null)
+            if (tab is FilterTabModel filterTab)
                 ListFilters.Items.AddRange(filterTab.GetFilters());
 
             if (ListFilters.Items.Count > 0)
index c15b98e..c132bbe 100644 (file)
@@ -3616,29 +3616,25 @@ namespace OpenTween
                 if (!this._statuses.Tabs.TryGetValue(this._curTab.Text, out tab))
                     return;
 
-                switch (_statuses.Tabs[_curTab.Text].TabType)
+                switch (tab)
                 {
-                    case MyCommon.TabUsageType.Mentions:
+                    case MentionsTabModel replyTab:
                         await this.GetReplyAsync();
                         break;
-                    case MyCommon.TabUsageType.DirectMessage:
+                    case DirectMessagesTabModel dmTab:
                         await this.GetDirectMessagesAsync();
                         break;
-                    case MyCommon.TabUsageType.Favorites:
+                    case FavoritesTabModel favTab:
                         await this.GetFavoritesAsync();
                         break;
-                    //case MyCommon.TabUsageType.Profile:
-                        //// TODO
-                    case MyCommon.TabUsageType.PublicSearch:
-                        var searchTab = (PublicSearchTabModel)tab;
+                    case PublicSearchTabModel searchTab:
                         if (string.IsNullOrEmpty(searchTab.SearchWords)) return;
                         await this.GetPublicSearchAsync(searchTab);
                         break;
-                    case MyCommon.TabUsageType.UserTimeline:
-                        await this.GetUserTimelineAsync((UserTimelineTabModel)tab);
+                    case UserTimelineTabModel userTab:
+                        await this.GetUserTimelineAsync(userTab);
                         break;
-                    case MyCommon.TabUsageType.Lists:
-                        var listTab = (ListTimelineTabModel)tab;
+                    case ListTimelineTabModel listTab:
                         if (listTab.ListInfo == null || listTab.ListInfo.Id == 0) return;
                         await this.GetListTimelineAsync(listTab);
                         break;
@@ -3662,30 +3658,25 @@ namespace OpenTween
                 if (!this._statuses.Tabs.TryGetValue(this._curTab.Text, out tab))
                     return;
 
-                switch (_statuses.Tabs[_curTab.Text].TabType)
+                switch (tab)
                 {
-                    case MyCommon.TabUsageType.Mentions:
+                    case MentionsTabModel replyTab:
                         await this.GetReplyAsync(loadMore: true);
                         break;
-                    case MyCommon.TabUsageType.DirectMessage:
+                    case DirectMessagesTabModel dmTab:
                         await this.GetDirectMessagesAsync(loadMore: true);
                         break;
-                    case MyCommon.TabUsageType.Favorites:
+                    case FavoritesTabModel favTab:
                         await this.GetFavoritesAsync(loadMore: true);
                         break;
-                    case MyCommon.TabUsageType.Profile:
-                        //// TODO
-                        break;
-                    case MyCommon.TabUsageType.PublicSearch:
-                        var searchTab = (PublicSearchTabModel)tab;
+                    case PublicSearchTabModel searchTab:
                         if (string.IsNullOrEmpty(searchTab.SearchWords)) return;
                         await this.GetPublicSearchAsync(searchTab, loadMore: true);
                         break;
-                    case MyCommon.TabUsageType.UserTimeline:
-                        await this.GetUserTimelineAsync((UserTimelineTabModel)tab, loadMore: true);
+                    case UserTimelineTabModel userTab:
+                        await this.GetUserTimelineAsync(userTab, loadMore: true);
                         break;
-                    case MyCommon.TabUsageType.Lists:
-                        var listTab = (ListTimelineTabModel)tab;
+                    case ListTimelineTabModel listTab:
                         if (listTab.ListInfo == null || listTab.ListInfo.Id == 0) return;
                         await this.GetListTimelineAsync(listTab, loadMore: true);
                         break;
@@ -7322,25 +7313,23 @@ namespace OpenTween
                     SoundFile = tab.SoundFile,
                 };
 
-                var filterTab = tab as FilterTabModel;
-                if (filterTab != null)
-                    tabSetting.FilterArray = filterTab.FilterArray;
-
-                var userTab = tab as UserTimelineTabModel;
-                if (userTab != null)
-                    tabSetting.User = userTab.ScreenName;
-
-                var searchTab = tab as PublicSearchTabModel;
-                if (searchTab != null)
+                switch (tab)
                 {
-                    tabSetting.SearchWords = searchTab.SearchWords;
-                    tabSetting.SearchLang = searchTab.SearchLang;
+                    case FilterTabModel filterTab:
+                        tabSetting.FilterArray = filterTab.FilterArray;
+                        break;
+                    case UserTimelineTabModel userTab:
+                        tabSetting.User = userTab.ScreenName;
+                        break;
+                    case PublicSearchTabModel searchTab:
+                        tabSetting.SearchWords = searchTab.SearchWords;
+                        tabSetting.SearchLang = searchTab.SearchLang;
+                        break;
+                    case ListTimelineTabModel listTab:
+                        tabSetting.ListInfo = listTab.ListInfo;
+                        break;
                 }
 
-                var listTab = tab as ListTimelineTabModel;
-                if (listTab != null)
-                    tabSetting.ListInfo = listTab.ListInfo;
-
                 tabSettingList.Add(tabSetting);
             }
 
index 1eb0cb2..be04a15 100644 (file)
@@ -69,12 +69,12 @@ namespace OpenTween
 
                 var targetText = text.Substring(startIndex, endIndex - startIndex);
 
-                if (entity is TwitterEntityUrl)
-                    yield return FormatUrlEntity(targetText, (TwitterEntityUrl)entity, keepTco);
-                else if (entity is TwitterEntityHashtag)
-                    yield return FormatHashtagEntity(targetText, (TwitterEntityHashtag)entity);
-                else if (entity is TwitterEntityMention)
-                    yield return FormatMentionEntity(targetText, (TwitterEntityMention)entity);
+                if (entity is TwitterEntityUrl urlEntity)
+                    yield return FormatUrlEntity(targetText, urlEntity, keepTco);
+                else if (entity is TwitterEntityHashtag hashtagEntity)
+                    yield return FormatHashtagEntity(targetText, hashtagEntity);
+                else if (entity is TwitterEntityMention mentionEntity)
+                    yield return FormatMentionEntity(targetText, mentionEntity);
                 else
                     yield return t(e(targetText));