为什么私人虚拟方法在C#中是非法的?

来自C ++的背景,这对我来说是一个惊喜。 在C ++中,使虚拟function保密是一个很好的做法。 来自http://www.gotw.ca/publications/mill18.htm :“指导方针2:倾向于将虚拟function私人化”。 我还引用了来自Knights-knaves-protected-and-internal的 Eric Lippert的博客: 私有虚拟方法在C#中是非法的,这让我非常沮丧。 如果有的话,我会完全使用这个function。 我明白,在C#中,您将无法重写派生(但不是嵌套)类中的私有虚拟方法。 这是为什么? 在C ++中,访问说明符与是否可以重写函数无关。

当你处于历史的中间时,浏览历史上最早/最新的命令

说我在一个bashdocker,有一个很长的命令历史。 我向上压了很多次,并处于历史的“中间”。 我现在想要快速导航到历史logging中的第一个或最后一个命令(没有长时间保持向上或向下箭头)。 这可能吗? 如果是的话,实现这个目标的捷径是什么?

没有ContentProvider的SyncAdapter

我想为我想与服务器同步的内容实现SyncAdapter。 似乎这样做,您需要为您在SyncAdapter XML属性文件中指定的权限注册ContentProvider。 由于我不希望这些内容能被手机的其他部分访问,所以我还没有实现我自己的ContentProvider,并使用个人实现来存储这些内容。 你知道是否有可能使用SyncAdapter提供同步而不提供ContentProvider? 非常感谢你。

什么规则适用于MIME边界?

当你写MIME时,你将消息的不同块分隔开来。 我因为某种原因找不到解释这个边界的任何文件,但是这里是我从例子中收集到的: 边界可以是任何字母和数字的string,即“d29a0c638b540b23e9a29a3a9aebc900aeeb6a82”。 没有规则来产生边界,你可以简单地说出你心爱的人的名字,在这里,你已经有了你的边界。 如果您通过HTTP发送MIME,则必须添加指定您的标题“Content-Type”,并且标题的边界内容可能如下所示: 多部分/格式的数据; 边界= d29a0c638b540b23e9a29a3a9aebc900aeeb6a82 在消息的正文中,边界应以“ – ”开头,如: –d29a0c638b540b23e9a29a3a9aebc900aeeb6a82 但遵循这些规则(和这个有用的答案),我没有生成服务器将接受的POST查询。 我错过了什么吗? 我有什么问题吗?

如何在to_json中获取回形针图片的url

我有一个使用这样的回形针的模型: has_attached_file :avatar, :styles => { :large => "100×100>" , :medium => "50×50>", :small => "20×20>" }, :default_url => 'http://img.dovov.commissing-owner_:style.png' 我用to_json方法导出这个模型,我想导出图像的URL,所以我可以在JavaScript中使用它。 我知道我可以在视图中像这样访问url: <%= image_tag model.avatar.url(:medium) %> 但是我怎样才能在to_json方法中做同样的事情。 我有这样的一些: respond_to do |format| render :json => @model.to_json(:only => [:id,:name,:homephone,:cellphone]) end

有没有CSSselect器<a>元素缺乏href属性?

我明白,CSS规则可以指定由属性值指定的元素,例如: input[type="text"] {} 我可以制定一个规则,针对那些省略某个属性的元素吗? 例如,我可以定位缺乏href的元素或不指定types的元素吗?

数据库索引的sortingstring表(SSTable)或B +树?

使用两个数据库来说明这个例子: CouchDB和Cassandra 。 CouchDB的 CouchDB使用一个B +树来处理文档索引(使用一个巧妙的修改在其append-only环境中工作) – 更具体地说,当文档被修改(插入/更新/删除)时,它们被附加到正在运行的数据库文件以及完整的Leaf – >所有节点的B +树节点path,由文档之后的更新版本实现。 这些分片索引修订内容正好与修改一起内联,使得完整索引是在文件末尾附加的最近的索引修改的联合,以及在数据文件中更远的附加部分,这些附加的部分仍然是相关的,尚未修改。 searchB +树是O(logn)。 卡桑德拉 Cassandra将logging键保存在表中(我们把它们看作是这个问题的数组),并将它们作为单独的(sorting的) sortingstring表格不时地写出来。 我们可以把所有这些表格的集合看作是“索引”(从我的理解)。 Cassandra需要时常压缩/合并这些sortingstring表 ,创build更完整的索引文件表示。 searchsorting的数组是O(logn)。 题 假设维护CouchDB中的部分B +树块与Cassandra中的部分sortingstring索引之间存在类似的复杂度,并且假设两者都提供O(logn)search时间,那么您认为哪一个会更好地表示数据库索引,以及为什么? 我特别好奇的是,如果有一个相对于另一个的实现细节,使其特别具有吸引力,或者如果他们都是洗钱,并且您只是select您喜欢使用的任何数据结构/对开发人员更有意义。 谢谢你的想法。

为什么Pythonstring是不可变的? 使用它们的最佳实践

什么是使Pythonstring不可变的devise原因? 它如何使编程更容易? 我习惯了可变string,就像C中的那些字符一样。我应该如何编程而不使用可变string? 有没有最佳做法?

模板类中是否允许纯虚拟方法?

有一次,我确信你不能这样做,但是前几天我正在玩一些代码,似乎是编译和工作的。 我只是想validation我不只是幸运。 一个模板类可以有一个纯虚函数 – 我猜这也意味着只是简单的虚方法对于析构函数也是有效的? template <typename WordType> class DataSource { public: DataSource(); DataSource(DataSource const& other); virtual ~DataSource(); virtual void Put( WordType const* const data, unsigned int const wordCount) = 0; } 我已经尝试过在网上查找它,所有我已经能够find的是,你不能有一个正常的类,如这样的虚拟方法(纯的或其他): class DataSource { public: DataSource(); DataSource(DataSource const& other); virtual ~DataSource(); template <typename WordType> virtual void Put( WordType const* const data, unsigned int […]

DataAnnotation为必需属性

首先它有效,但今天它失败了! 这是我如何定义date属性: [Display(Name = "Date")] [Required(ErrorMessage = "Date of Submission is required.")] [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] [DataType(DataType.Date)] public DateTime TripDate { get; set; } 它一直在工作。 但今天,当我调用相同的ApiController行动: [HttpPost] public HttpResponseMessage SaveNewReport(TripLeaderReportInputModel model) Firebug报道: ExceptionMessage: "Property 'TripDate' on type 'Whitewater.ViewModels.Report.TripLeaderReportInputModel' is invalid. Value-typed properties marked as [Required] must also be marked with [DataMember(IsRequired=true)] to be […]