百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

据说这段代码可以检验程序员的基本功,关于ComboBox

cac55 2024-10-11 10:51 15 浏览 0 评论

前几天记录了一个关于ComboBox的文章,记录一个ComboBox的设置问题,你可能没遇到过。虽然看的人不多,但是“差评率”很高,一共8条评论,4条直接说基础太差,好评率这么低,你们想让我关店吗?[捂脸]

我一个编程20多年,经手过几十个项目,自己独立开发过6-7款产品的老程序员,竟然被集体认定为基础太差,还有王法吗?哈哈,开个玩笑[憨笑]。不过我回头一想,也许是我原文描述得不够清楚,让大家以为这是个很简单的问题。所以,我这次尽量完整地把这个问题展示下,看看这世上还有没有人跟我一样基础太差的。希望大家可以按我的进度,先做题,再看答案。

我要实现的功能很简单,就是动态生成ComboBox,动态指定它的值,然后设置默认选择项。

先看这段代码:

private void Form1_Load(object sender, EventArgs e)
        {
            ComboBox cbxA = new ComboBox();
            List<DictionaryEntry> optionsA = new List<DictionaryEntry>();
            optionsA.Add(new DictionaryEntry() { Key = "MultiLine", Value = "多行" });
            optionsA.Add(new DictionaryEntry() { Key = "SingleLine", Value = "单行" });
            cbxA.DataSource = optionsA;
            cbxA.ValueMember = "Key";
            cbxA.DisplayMember = "Value";
            cbxA.SelectedValue = "SingleLine";
            this.Controls.Add(cbxA);
        }

现在第一个问题来了:

Q1:界面初始化完成后,cbxA的默认选择是:

(A)单行 (B)多行 (C)SingleLine (D)MultiLine (E)直接报错

大家到这里先暂停,用你们所学的基础去思考,然后在评论区写下你们的答案,再继续阅读。

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

程序的运行结果如下:

没有报错,但是默认选择并非是我们预期的单行,而是多行。我相信应该现在会有一些人翻上去看代码了,反正我的第一反应是一脸懵逼。

那么现在第二个问题来了:

Q2:要想让cbxA的默认选择为单行,如何调整代码?

大家到这里先暂停,用你们所学的基础去思考,然后在评论区继续写下你们的答案,再继续阅读。

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

.........

最终的代码是:

ComboBox cbxA = new ComboBox();
            List<DictionaryEntry> optionsA = new List<DictionaryEntry>();
            optionsA.Add(new DictionaryEntry() { Key = "MultiLine", Value = "多行" });
            optionsA.Add(new DictionaryEntry() { Key = "SingleLine", Value = "单行" });
            cbxA.DataSource = optionsA;
            cbxA.ValueMember = "Key";
            cbxA.DisplayMember = "Value";
            this.Controls.Add(cbxA);
            cbxA.SelectedValue = "SingleLine";

如果你没看出来变化,那么我告诉你,只要把this.Controls.Add(cbxA);和cbxA.SelectedValue = "SingleLine";换下位置就好了。

现在建议大家把答案都写在评论区,实在想看看大家的真实水平到底是什么?

实不相瞒,这个问题我调试了很久才找到了关键点,因为实际项目中的代码有很多层的调用关系,真正把这个comboBox加到控件中是放在其他函数中实现的。在我当时看来,就是把一个值设置给SelectedValue,但是设置以后,这个SelectedValue死活都是null,完全失效了,完全可以用诡异、灵异来形容。

事后诸葛亮我们谁都知道,每个人都可以给出合理的解释:比如基于效率的考虑,基于消息映射的考虑等等。就好像我们常说的那些专家一样。但是在问题没发生前,能提前预料到的有几个?预料不到的就被定性为基础太差吗?我不敢认为我的编程水平很牛,短板有很多,所以现在每天也都还在学习。但是就一个代码安放顺序导致的问题,就可以被集体定性为基础太差,这说明了什么呢?

还有比较搞笑的是有人教我去看下系统自动生成的designer.cs,老师,请你自己先用自动生成的代码去给我设置个SelectedValue出来然后再来教我吧。睁眼说瞎话且好为人师的实在是不能用稀缺来形容。

我表达这些,并不是因为我个人被评价为基础太差而感到不平。我是觉得这个社会缺少实事求是的精神,缺少认真负责的态度,而且数量庞大,哪怕他是一个做技术的。真心希望能看到我们伟大的祖国和人民的共同进步。

相关推荐

博科矩阵新IP网络推动发展OTT服务

近日消息,日本电信服务提供商软银集团正在部署博科VDX交换机,为集团公司通用服务基础架构网络提供以太网矩阵,从而简化数据中心运营。这个新的基础架构将大幅度降低软银数据中心网络运营的复杂度和成本,使该公...

博科SDN战略落地 首款控制器Vyatta面世

ZDNET网络频道10月10日评论消息(文/于泽):虽然软件定义网络(SDN)近两年被炒得很热,但一直属于雷声大雨点小。各网络厂商都声称自家的交换机能够支持OpenFlow协议、实现SDN,不过就...

博科网络矩阵助Skilled Group“时刻在线”

澳大利亚最大的劳动力解决方案提供商SkilledGroup采用博科以太网和光纤通道存储区域网络(SAN)矩阵部署了一个创新的网络,从而打造了一个“时刻在线”的IT基础架构。博科矩阵实现了零停机环境以...

博科基于OpenDaylight推出SDN控制器Vyatta

ZDNET网络频道09月23日编译:博科周一宣布推出Vyatta控制器。Vyatta是博科SDN产品系列中一个新的主打产品。博科表示,Vyatta控制器是一步一步的从OpenDaylight项目中...

浏览器https方式访问博科FC光交显示没有匹配的加密算法套件

浏览器https方式访问博科FC光交显示没有匹配的加密算法套件报错的解决办法。。------------------------------------------------------------...

博科携手VMware推动软件定义数据中心和网络虚拟化的普及

2014年10月14日--博科(NASDAQ:BRCD)今天宣布,公司携手VMware,推出支持新IP的解决方案,以期让企业能够更轻松地迁移到软件定义数据中心(SDDC)和使用网络虚拟化。博科公司...

博科公司为追求速度极致的闪存拥趸提供光纤通道交换机

博科公司已经发布了一款每秒32Gbit第六代光纤通道交换机,这意味着其能够将现有每秒16Gbit连接速度提升一倍。其G620交换机采用1U机箱,提供24到64个端口,据博科方面所言这已经达到当前业...

博科推出第6代交换机 扩大光纤存储地位

博科今天宣布推出业内第一台第6代光纤通道存储网络交换机——博科G620,进一步扩大了博科在光纤通道技术领域的地位。这一全新专用且高密度SAN交换机提供突破性的性能和高可扩展性,旨在支持来自核心应用的数...

微信官宣新功能上线,聊天记录备份、迁移更好用了!

说到手机里哪个App最占空间,很多用户的答案大概都是微信,动辄占用几十甚至上百GB。不仅App本身体积庞大,更主要的是日积月累的聊天记录导致了空间的迅速消耗。此前,释放微信空间的常用方法是将...

局域网沟通工具--BeeBEEP(局域网内部聊天工具)

原文链接:局域网沟通工具--BeeBEEPHello,大家好啊!今天给大家带来一篇关于在信创终端上使用BeeBEEP的文章。BeeBEEP是一款安全、便捷的局域网即时通讯工具,支持文字聊天、文...

企业 IM 即时通讯底座,支持局域网通讯

在数字化浪潮下,企业对即时通讯的需求日益增长,尤其是对通讯安全性、可控性的要求愈发严苛。BeeWorks作为专业的企业IM即时通讯底座,凭借对局域网通讯的支持,为企业打造了优质可控的即时通讯与实...

IM即时通讯软件,构建企业局域网内安全协作

安全与权限:协同办公的企业级保障在协同办公场景中,BeeWorks将安全机制贯穿全流程。文件在局域网内传输与存储时均采用加密处理,企业网盘支持水印预览、离线文档权限回收等功能,防止敏感资料外泄;多人...

当今信息化时代都离不开WLAN, 今天给大家普及一下WLAN知识

无线局域网(WirelessLocalAreaNetworks/WLAN)一.无线让网络使用更自由:1.凡是自由空间均可连接网络,不受限于线缆和端口位置。二.无线让网络建设更经济:1.终端...

软网推荐:寻找WebQQ替代者 在线可以继续聊

不少公司禁止上班聊天,常常采取封禁QQ、关闭端口等方法,导致很多聊天软件无法使用。以前我们可以通过WebQQ绕开限制,不过WebQQ在2019年1月1日开始停止服务,想要继续隐蔽聊天,就只能找其他一些...

搭建自己的聊天室平台、公司内部聊天平台,Rocket.Chat搭建使用

一,简介rocket.chat是一个开源的社交软件,即可以直接在web页面使用,也可以下载APP(Android,IOS,Windows,MacOS)主要功能:群组聊天,直接通信,私聊群,桌面通知...

取消回复欢迎 发表评论: