(6)“深不见底”的C#

首先我想说下C#中的Linq,大家初学时在每个程序的开头都会见到using System.Linq;,可能猜到它跟数据库有关,但是具体不清楚。这里如果编程需要用到数据库,

则需要引入System.Data.Link。它让程序与数据库轻易的连接在一起,安卓平台也有自带的数据库,但是他们两者的性能我还没有什么好的方法来比较,这一点留给聪明的读者吧!

总之,它给C#的程序员带去一道光芒,让死寂的编程出现了一丝生机,免去了配置各种数据库的苦恼。这里为了读者的理解,奉上一张PPt的图

这张图很明白的告诉你这个LINK的机理,工科人一看就懂,萌萌哒

接下来我想讲下另所有程序员头痛的问题,那就是异常处理。我觉得评价一个程序员的好坏,很重要的一点就是看他对于异常的态度。很多人就直接抛出,死机,结束程序了事,

但是真正的顾客永远是世界上最挑剔的人,对于这样一帮永不满足的人,你的产品怎么会有受众?现在来看个最贱的,哦不最简单的例子

这是个简单的不得了的判断是否俩数能相除的代码。通常先处理派生最深的异常的类型,最后处理的是一般性异常。

异常具有以下特点:

  • 各种类型的异常最终都是由 System.Exception 派生而来。
  • 在可能引发异常的语句周围使用 try 块。
  • 一旦 try 块中发生异常,控制流将跳转到第一个关联的异常处理程序(无论该处理程序存在于调用堆栈中的什么位置)。 在 C# 中,catch 关键字用于定义异常处理程序。
  • 如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误消息。
  • 除非您可以处理某个异常并使应用程序处于已知状态,否则请不要捕捉该异常。 如果捕捉 System.Exception,请在 catch 块的末尾使用 throw 关键字再次引发该异常。
  • 如果 catch 块定义了一个异常变量,则可以用它获取有关所发生异常类型的更多信息。
  • 程序可以使用 throw 关键字显式地引发异常。
  • 异常对象包含有关错误的详细信息,比如调用堆栈的状态以及有关错误的文本说明。
  • 即使发生异常也会执行 finally 块中的代码。 使用 finally 块释放资源,例如,关闭在 try 块中打开的任何流或文件。
  • .NET Framework 中的托管异常是凭借 Win32 结构化异常处理机制实现的。 有关更多信息,请参见结构化异常处理 (C/C++)A Crash Course on the Depths of Win32 Structured Exception Handling(有关深入探究 Win32 结构化异常处理的应急课程)。

刚学C#那阵,我知道有个东西叫WPF,但是一直不知道那个是干什么用的,最近有点开窍了(毕竟要交大作业了。。呜呜), Windows Presentation Foundation (WPF) 是下一代显示系统,用于生成能带给用户震撼视觉体验的 Windows 客户端应用程序。 使用 WPF,您可以创建广泛的独立应用程序以及浏览器承载的应用程序。为了大家能刚好的理解呢,博主粘一段代码来看:

打开Window1.xaml,用下面的代码替换原有的:
<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="输入:  "/>
            <TextBox Name="TbInput" Width="100px"/>
            <Button Name="BtnCalc" Click="BtnCalc_Click">求平均值</Button>
        </StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="平均值:  "/>
            <Label Name="LblResult" Foreground="Red" Width="100px">abc</Label>
        </StackPanel>
    </StackPanel>
</Window>
为BtnCalc_Click事件添加逻辑,打开Window1.xaml.cs,添加:
private void BtnCalc_Click(object sender, RoutedEventArgs e)
        {
            string input = TbInput.Text.Trim();
            if (!String.IsNullOrEmpty(input))
            {
                string[] rawDataSet = input.Split(", ".ToCharArray());
                if (rawDataSet.Length != 5)
                    return;
                try
                {
                    int i = 0;
                    double sum = 0;
                    for (; i < rawDataSet.Length; i++)
                        sum += Double.Parse(rawDataSet[i]);
                    LblResult.Content = sum / i;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
运行程序,在文本框中输入五个数,中间用空格或逗号分开,然后点计算平均值按钮,即可显示结果。这个只要你新建一个WPF程序然后,把这个代码跑一遍就知道WPF大概是个啥了

这里的Xaml是基于XML的标记语言(安卓用的就是XML哦),用于以声明形式申明程序的外观。 由于 XAML 基于 XML,因此使用它来编写的 UI 被组合到称为“元素树”的嵌套元素层次结构中。 元素树为创建和管理 UI 提供了一种逻辑且直观的方式。 有关更多信息,请参见 WPF 中的树。 还有WPF中的代码隐藏也十分有意思,我也正在探索中,有兴趣的读者可以了解下。。

时间: 2024-10-29 14:57:26

(6)“深不见底”的C#的相关文章

致青春——写给深不见底的悲伤

致青春 ——写给深不见底的悲伤 几卷雪雨,几卷寒风,江南早已是烟水迷离.青春却是一道明媚的忧伤,在烟雨江南的石子路上延伸而看不到终点,伤感,无穷尽. 曾经走过人间四季春秋,与美丽无言的青春有过相濡以沫的约定:茉莉在黄昏中浮动着神秘的幽香,终于,我还是长大了,伴着快乐与悲伤.只是,那悲伤,深不见底. 寒冷的夜风,给人淡淡的不安,阴寒的空气中,饱含着愤怒和不堪:破碎的灵魂,不忍心流年逝去中的自己与青春黯然相遇,四处流浪,天涯海角,一路听风的声音,听雨的声音,听青春久远无穷尽的声音. 我看到遥远的时空

Python里那些深不见底的“坑”

Python是一门清晰简洁的语言,如果你对一些细节不了解的话,就会掉入到那些深不见底的"坑"里,下面,我就来总结一些Python里常见的坑. 列表创建和引用 嵌套列表的创建 使用*号来创建一个嵌套的list: li = [[]] * 3 print(li) # Out: [[], [], []] 通过这个方法,可以得到一个包含3个list的嵌套list,我们来给第一个list增加一个元素: li[0].append(1) print(li) # Out: [[1], [1], [1]]

对你的爱深不见底

这题的话,其实可以先打个表找一下规律,然后会发现,n是没什么卵用的,你只要关注m就行了.然而,m很大很大很大,不得不开高精,这就为解题带来了麻烦. 我们先把答案的序列打出来: 乍一看,很有规律的样子(别说你没看出来).我们再细分一下: 我们发现,划分成的子区间都是公差为1的等差数列,且区间长都是fib数.我们在观察一下: 我们发现,每个区间的第一行元素+1也是fib数! 那么,如果我们知道一个数m,我们要知道ans,我们可以通过两个fib数列推出! 我们先可以求出m>sum(fib[1~i])(

[高精度][规律][二分] Jzoj P4213 对你的爱深不见底

Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y,但是因为小R 非常羞涩,所以他打算采用一些比较神奇的方式来表达.他定义了一些字符串,s1 = a,s2 = b,si =s_i-1  +  s_i-2  (i >=3).同时他定义了一个字符串s 的权值为一个最大的i <|s|满足s 长度为i 的前缀等于长度为i 的后缀.比如字符串aba 的权值就是1,abab 的权值就是2,aaaa 的权值就是3.现在小R 在明信片上给出了两个

APICLOUD APP外包行业的水深不见底

APP外包行业的水深不见底,里面的名堂似乎总也弄不懂. 对于创业者以及企业来说,这些不靠谱的外包公司就是创业路上一个个躲不过去的坑,为了能够让创业的每一个人能够走得更远,移动应用开发专家APICloud就来扒一扒关于APP外包公司的各种"套路". 当然此处主要是针对一些不良甚至恶劣的APP外包公司,切勿以偏概全,一棒子打死了APP行业的良心企业. 1."套牌"公司,都是假 现如今,胆子比天大.不少骗子公司为了能够骗钱可是什么都能干得出来.开发一个APP的成本可不低,

页面前端的水有多深?再议页面开发

但凡从事互联网的人基本都会写几行html,用过Word的人用Dreamweaver也能做出规整的页面,所以大部分人会很自然地认为"页面 的开发没什么技术含量,很简单".不仅有这种普遍的认知,对从业者来说也有很多疑惑:做页面前端实现,没问题:兼容性,小case:图片集成,一直都在 用--还能有什么问题?瓶颈啊.天花板啊.转型啊.出路啊就在从业者中广泛讨论.是不是真的没什么问题了呢?网易邮箱前端技术中心也设立好几年了,似乎有 着讨论不完的话题,也经常会有一些新的想法让大家为之一振.那么页面

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

阅读目录: 1.环路执行对象模型.碎片化执行模型(假递归式调用) 2.N层对象执行模型(纵横向对比链式扩展方法) 3.LINQ查询表达式和链式查询方法其实都是空壳子 4.详细的对象结构图(对象的执行原理) 5.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系 6.完整的自定义查询 1]. 环路执行对象模型.碎片化执行模型(假递归式调用) 这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没有搞懂LINQ的本意之前,在我脑海里一直频

东汤镇纪行

1. 发现自己心情不佳,攻击性强,大运动量也不足以补救.果断开始这次说走就走的旅行.订好火车票,大人逃班,孩子逃学.只要先活下来,哪管我身后洪水滔天. 东汤镇,我又来了. 每次出门,带哪几本书是最令人头疼的.我担心,万一无聊,万一等车之类.另外,平时繁忙,难得静下心来一口气读完的,正适合旅行.虽然有了kindle和ipad以后有所好转,但是仍然并非每一本书都有电子版,也并非每一本书都适合非纸质媒质.好在这次二猫妈说,行李箱足够大,想带多少都行.带了四本,编码.自由与组织.复杂系统理论基础.最美的

好东西要大家一起分享,前端资源目录汇总

俗话说,"师傅领进门,修行在个人",对于技术的进步,一个人闭门造车肯定是不行的. 一个好的师傅,可以帮助自己快速地成长. 但是好的师傅可遇不可求,更多的时候要发挥互联网这个"老司机"的作用. 目前汇总了一些常见的互联网前端学习资源,与那种看了一次收藏之后再也不会看的目录不同,每一份资源都是我自己用过之后觉得的确对技术的提升有帮助,放在下面的目录上.希望能够对正在学习前端的同学有帮助,同时也是对自己的一个提醒. 1.关于博客园 <豪情> 豪情的博客园一定是