随着API 2.3的关闭,播放列表和下一页的feed大多已经下降,但对于想要了解YouTube API工作原理的人来说,逻辑和推理仍然存在。
由于C#的特性,在引用列表中添加的每一个引用都会减慢应用程序的启动时间,并在RAM中占用未使用的内存。加快应用程序启动速度的最快方法之一就是移除这些无用的引用。
.NET Framework 3.5中的System引用在单个应用程序中可以使用超过5,000次。虽然这与System.Windows.Forms中的大约30,000次使用次数相比不算什么,但System中的大多数使用次数将构成应用程序的核心。然而,正如使用示例System一样,.NET Framework的System大约有一百个子引用。从System.AddIn到System.Xml不等。有些,如System.Xml,甚至有子子引用。
对于初学者来说,可能会感到困惑,他们需要哪些引用。这就是为什么总是说,“完成工作后再进行清理。”可以安全地从项目中移除/删除这些引用,如果需要的话,稍后再添加它们。
一个快速的提示,如果有能力使用内置引用(如System)替换插件引用(如ShockwaveFlashObjects),请这样做。虽然可能需要更改代码以反映这些变化,但根据经验,C#应用程序中插件引用越少,客户端计算机上的稳定性和速度就越好。这也确保了应用程序的独立性。
在这种情况下,移除了很多引用。
在移除引用时,请确保也移除了.cs文件顶部的"using [referencename/sub-name];",如果没有为完成,或者加速提升将不会到来。
在这个项目中,登录.cs有:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.YouTube;
using Google.GData.Extensions.MediaRss;
using Google.YouTube;
当(在所有更改之后)它只需要:
using System;
using System.Diagnostics;*
using System.Net;*
using System.Windows.Forms;
using Google.GData.YouTube;
*添加用于链接创建账户。
这将大大减少计算机需要启动该.cs文件的工作量。从而使应用程序对用户来说更加响应。
在创建应用程序时,一定要考虑用户可以做什么。大多数开发者在使用他们的应用程序时会陷入一套程序,他们会以应用程序的预期方式遍历它(他们当然是创建它的人)。除非他们设计应用程序以确保用户只能以那种方式使用它,否则用户可能会以不同的方式使用它。
这就是应用程序崩溃的主要原因。开发者没有让它可以以另一种方式使用,这就是为什么return命令非常有用的原因。
举个例子。这个,当点击时,会获取文件位置,同时为标题文本框提供名称。
private void btnChoosefile_Click(object sender, EventArgs e)
{
string tmp;
choosefile.ShowDialog();
tmp = choosefile.FileName;
txtFilepath.Text = tmp;
string[] title = tmp.Split('\\');
int i = title.GetUpperBound(0);
string temp = title[i];
string[] title1 = temp.Split('.');
txtTitle.Text = title1[0];
filename = tmp.Replace("\\", "\\\\");
filetype = title1[1];
}
虽然这看起来不错,但有一个问题。如果用户没有选择文件怎么办?应用程序将得到一个空错误并崩溃。为了防止这种情况,所有开发者需要做的是改变一些措辞。
private void btnChoosefile_Click(object sender, EventArgs e)
{
if (choosefile.ShowDialog() != DialogResult.OK)
return;
var tmp = choosefile.FileName;
txtFilepath.Text = tmp;
var title = tmp.Split('\\');
var i = title.GetUpperBound(0);
var temp = title[i];
var title1 = temp.Split('.');
txtTitle.Text = title1[0];
filename = tmp.Replace("\\", "\\\\");
filetype = title1[1];
}
那个if语句可以防止崩溃。如果用户没有选择OK,那么什么都不会做(return命令使其成为可能)。ShowDialog()是一个非常好的命令,因为它不会在没有有效文件的情况下存在,所以用户唯一能够到达第二行的方式是选择了一个有效的文件并按下了OK。
这里是另一个关于如何检索ShowDialog()或MessageBox.Show()的响应的例子:
DialogResult result = MessageBox.Show("Please click yes.", "Just press it.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
MessageBox.Show("I will now take over the world.", "It's the final countdown", MessageBoxButtons.OK, MessageBoxIcon.Warning);
WorldBoom();
}
这个语句会创建一个带有“是”和“否”按钮的MessageBox。如果用户按下“Yes”,那么世界将会爆炸(开玩笑,开玩笑,开玩笑)。
然而,它确保只有正确的预定路径可以被采取。
应用程序的外观和感觉将对用户使用它的时间和体验的愉悦程度产生持久的影响。没有什么比不得不寻找东西更令人沮丧的了。这就是为什么公司非常重视易用性的原因。
然而,当按下一个按钮而什么也没有发生时,更加令人沮丧。可能在后台有事情发生,但如果不让用户知道有事情发生,他就不会知道。有道理,对吧?
故事的根源;确保在用户方面最终会发生一些事情。如果命令很长,确保也有事情在开始时。可以使用诸如文本框或标签之类的东西来显示正在发生一些事情。
如果一个按钮没有链接到命令和/或没有意义,REMOVE IT。这是无意义的。如果想稍后集成一些东西并想使用那个按钮,HIDE IT直到它准备好。否则,如果有一个按钮连接到一个语句并且它像它的帖子一样工作,SHOW IT。
开发者喜欢MenuStrip。这是可以理解的,因为它们很容易帮助组织事情。甚至可以在菜单内部组织菜单,使一切变得干净。然而,它们也可能是用户的最坏敌人。拥有太多会使导航应用程序变得极其复杂,更不用说很难管理了。
为了对抗这一点,使用“在不必要时阻止或隐藏”的方法。在应用程序中执行特定命令时,可以禁用或隐藏按钮。当命令完成时,可以再次启用或显示按钮。这在使用应用程序时清理了应用程序,并使用户体验更加流畅。
要禁用一个按钮:
Button.Enabled = false;
要隐藏一个按钮:
Button.Visible = false;