天下网吧 >> 网吧系统 >> 系统动态 >> 正文

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

2016-3-13不详佚名

▲将从控制台获取数据包装为方法

这个方法我们将它取名为GetInputString,圆括号内指定了方法要求传入的参数(称为形参),这里需要一个字符串类型参数,方法名前面的string修饰符表示该方法需要返回一个字符串值。方法内的第一条语句接受参数值,并输出作为提示,这里我们使用了另外一个方法Console.Write,它在输出提示内容后不换行。第二条语句通过return关键字返回程序运行时你所输入内容。

在Main方法中我们也改写了之前的代码,通过调用GetInputString方法,将提示语作为参数(调用者为方法传入的值称为实参,与形参必须是一一对应的),方法将用户输入内容赋值给两个字符串变量。至此我们已经完成了用户输入的获取。下面我们将根据用户的输入获取我们想要的东西——必应壁纸!

注意:在命名上我们有一些约定,对于方法名我们采用Pascal风格,即每个单词的第一个字母都大写,对于方法内部的变量(局部变量)和参数,则采用camel风格,即第一个字母小写,其余单词首字母大写。这并非强制规范,但是一种建议遵守的约定。

3、根据输入获取查询结果并输出

我们要从网页中获取必应壁纸查询结果,为了降低复杂度,豆豆简单制作了一个Web查询API,http地址规则如下:

http://test.dou.ms/bing/day/-1/mkt/zh-cn

其中day后面的数字即表示哪一天,可取值为-1、0、1…到15,分别表示明天(提前一天预览)、今天、昨天、前天…..15天前。mkt后面的zh-cn表示国家代码,可取值为JA-JP、ZH-CN、EN-IN、DE-DE、FR-FR、EN-GB、PT-BR、EN-CA、FR-CA、EN-US、EN-WW、EN-AU,其所代表的国家就不一一介绍了,这里也不区分大小写。那么上面这个地址其实是必应中国明天的壁纸信息(每天都在更新),也可通过浏览器打开,页面返回的只是简单的一串字符。当然,在与服务器进行数据传递时有更规范的数据格式,比如JSON、XML,但我们不想把事情搞“复杂”。

这里直接给出编写好的从http地址获取网页内容的方法GetHttpData,如下图所示:

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

▲从网页中获取数据的方法

该方法以地址作为参数,并返回网页内容(字符串)。这里面用到了四种类,分属System.IO、System.Net两个命名空间,因此需要在代码的最前面加上两行using语句。关于方法内每条语句的作用,可参考图中的注释,具体的代码含义等到学习过类的更多相关知识后会充分理解。

在C#语言中//表示行内注释,即在本行内,该符号后面的文字都被视为注释,注释是提供给人阅读的内容,有无注释对程序本身并无影响。

下面我们根据用户输入的两个参数直接调用上面的方法从对应地址获取到查询结果,代码如下图所示:

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

▲调用方法,获取网页内容

这里我们对字符串进行了拼接,字符串拼接使用+操作符,并将拼接好的字符串赋值给url字符串变量。然后以url为参数调用GetHttpData方法,并将返回的网页内容赋值给content字符串变量,最后将其输出。运行结果如下图所示:

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

▲查询结果

同样我们也可以对根据用户输入参数获取网页内容的过程进行包装,得到一个方法,命名为GetBingData,并改写Main方法中相关的代码,最终如下图所示:

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

至此,我们已经完成了根据参数获取必应壁纸信息的任务。

4、从查询结果中提取图片地址

上一步我们已将查询结果作为字符串存储在content变量中,接下来需要从中提取出图片地址,观察一下其实我们只需要在返回的字符串中截取“地址:”后面的字符串即可。在C#中字符串也是一个类,它有自己的方法,其中Split()方法的作用就是分割字符串,我们利用它来写一个自定义方法GetBingImageUrl,专门用来从查询结果中提取出图片地址,如下图所示:

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

同时我们在Main方法中调用自定义方法GetBingImageUrl获取了查询得到的必应图片的地址。

5、根据地址将文件下载到本地电脑

下载Http文件,可使用System.Net中提供的WebClient类的DownloadFile方法,同样,我们把这个功能写成一个方法DownLoadImage,如下图所示:

Win10开发入门:C#语言基础之用方法实现必应壁纸小工具

其中传递给DownloadFile的第二个参数为想要保存的文件名,Path.GetFileName()方法用于从地址中获取文件名和扩展名,最终文件被保存在与程序文件相同的目录(项目文件夹的\bin\Debug目录下)。

6、将下载到的图片设置为桌面背景

设置桌面壁纸我们需要调用Windows API来实现,对应的方法SystemParametersInfo在"C:\Windows\System32\

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下