我怎样才能尽可能清楚地初始化const / static结构数组? class SomeClass { struct MyStruct { public string label; public int id; }; const MyStruct[] MyArray = { {"a", 1} {"b", 5} {"q", 29} }; };
为什么不能在.NET中创build一个通用索引器? 下面的代码抛出一个编译器错误: public T this<T>[string key] { get { /* Return generic type T. */ } } 这是否意味着您不能为通用成员集合创build通用索引器?
我有我的用户控件的窗口,我想使用户控件宽度等于窗口宽度。 怎么做? 用户控件是一个水平菜单,包含一个三列的网格: <ColumnDefinition Name="LeftSideMenu" Width="433"/> <ColumnDefinition Name="Middle" Width="*"/> <ColumnDefinition Name="RightSideMenu" Width="90"/> 这就是我想要窗口宽度的原因,将用户控件拉伸到100%的宽度,与第二列相对。 编辑: 我正在使用网格,有窗口的代码: <Window x:Class="TCI.Indexer.UI.Operacao" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:tci="clr-namespace:TCI.Indexer.UI.Controles" Title=" " MinHeight="550" MinWidth="675" Loaded="Load" ResizeMode="NoResize" WindowStyle="None" WindowStartupLocation="CenterScreen" WindowState="Maximized" Focusable="True" x:Name="windowOperacao"> <Canvas x:Name="canv"> <Grid> <tci:Status x:Name="ucStatus"/> <!– the control which I want to stretch in width –> </Grid> </Canvas> </Window>
我习惯于Delphi VCL框架,其中TStreams抛出错误的例外(例如文件未find,磁盘已满)。 我正在移植一些代码来使用C ++ STL来代替,而且iostreams不会在默认情况下抛出exception,而是设置badbit / failbit标志 。 两个问题 a:为什么会这样 – 从第一天开始,对于一个有例外的语言来说,这似乎是一个奇怪的devise决定? b:如何最好地避免这种情况? 我可以生产出像我所期望的那样的垫片类,但是这感觉就像重新发明了轮子。 也许有一个BOOST库,这是一个更安全的方式吗?
我最近在Windows 7 Ultimate 32bit上安装了mingw32来安装CodeBlocks,以清除掉我的c技能,但这个问题让我有些难住。 我决定解雇一个短斐波那契发电机,以确保我的设置工作,但我碰到了一个障碍。 该程序编译,链接,而不是像一个魅力,我得到一个相应的可执行文件,按预期运行。 如果我再次尝试编译,会出现问题,然后我得到以下结果: c:/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot open output file bin\Debug\Fibonacci.exe: Permission denied 我甚至不能编辑生成的可执行文件的权限。 我已经检查了通常的嫌疑人: 可执行文件确实没有运行。 可执行文件的path是可读/写的mingw32(否则它将无法在第一个地方build立) 我没有以任何forms或forms运行cygwin。 现在有趣的一点是:通常在几分钟之后,由mingw32生成的显示访问被拒绝行为的任何可执行文件都将自动消失,没有任何我的干预。 我已经使用了这个,但其他大部分结果都是模糊的或不适用的。 我想知道是否有一些Windows 7的安全设置对我的.exe文件造成严重破坏,但我并不了解Win 7的知识,知道从哪里开始search。 有人有主意吗?
可能重复: 静态与全局 我对全局和静态全局variables之间的差异感到困惑。 如果静态意味着这个variables是全局唯一的同一个文件,那么为什么在两个不同的文件同名会导致名称冲突? 有人可以解释这个吗?
如何确定在获取对象地址时是否需要addressof(x)而不是&x ? 似乎这个问题很混乱,所以澄清是为了: addressof显然绕过了重载地址的运算符。 我已经意识到这一点。 我想知道的是: 我怎么知道这是我真正想做的事情? (特别是在模板内等) 是否有某种“规则”,可以帮助我找出何时需要addressof而不是& ? 毕竟,他们都返回对象的“地址”,那么我什么时候使用哪个?
这是最近在代码审查讨论中提出的,但没有得到令人满意的结论。 所讨论的types与C ++ string_view TS类似。 他们是简单的非拥有包装指针和长度,用一些自定义函数装饰: #include <cstddef> class foo_view { public: foo_view(const char* data, std::size_t len) : _data(data) , _len(len) { } // member functions related to viewing the 'foo' pointed to by '_data'. private: const char* _data; std::size_t _len; }; 问题出现在于是否有一个参数可以通过值或const引用传递这种视图types(包括即将到来的string_view和array_viewtypes)。 赞成按值传递的论据等于“较less打字”,“如果视图具有有意义的突变,则可以突变本地副本”,以及“可能效率不高”。 支持传递const引用的论据相当于“更习惯于通过const&传递对象”和“可能效率不高”。 是否有任何额外的考虑可能以某种方式决定性地摆动论点,或者根据价值或常量引用来传递惯用视图types。 对于这个问题,假定C ++ 11或C ++ 14语义以及足够现代的工具链和目标体系结构是安全的。
Objective-C中正式和非正式协议有什么区别?
我正在使用VS 2008.我从File-> New-> Website-> Asp.net Website创build了一个新的Asp.net网站项目。 现在我想将Global.asax和.cs文件添加到项目中。 所以我右键点击项目 – >添加新项目 – >全局应用程序类。 然后我点击添加button。 Global.asax文件添加了下面的内容 <%@ Application Language="C#" %> <script runat="server"%> void Application_Start(object sender, EventArgs e) { // Code that runs on application startup } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown } void Application_Error(object sender, EventArgs e) { // […]