小编Jac*_*cob的帖子

你能帮我理解一个实际例子中的抽象类与接口的用法吗?

你能否给我一个对抽象类和继承使用几乎过于简单化的理解并帮助我,这样我才能真正理解这个概念以及如何实现?我有一个项目,我正在努力完成,并且失去了如何实施.我一直在和我的教授聊天,并被告知,如果我无法弄明白,我可能还没准备好上课.我已经完成了prequestite课程,但仍然无法理解这些概念.

澄清一下,到目前为止,我所做的项目如下.我还没有填写狗/猫类等.你能指点一下吗?我不是要求任何人给我"答案".我只是迷失在哪里.我参加在线课程,他与我的沟通工作一直令人不安.我刚刚完成了所有其他课程的4.0,所以我愿意付出努力,但我对这些概念的理解以及如何实际应用它们感到迷茫.

是否有任何意见或帮助可以让我在这个项目中取得进一步进展?

我要实现的内容如下:

概述:

本练习的目的是演示Interfaces,Inheritance,Abstract classes和Polymorphism的使用.您的任务是获取提供的程序shell并添加适当的类和相应的类成员/方法,以使此程序正常运行.您不能对提供的任何代码进行更改,您只能添加您编写的类.尽管有许多方法可以使程序正常工作,但您必须使用演示Interfaces,
Inheritance,Abstract classes和Polymorphism的技术.同样,为了清楚起见,您可以添加到提供的代码,但不能更改或删除任何代码.提供的代码将使用非常少的附加代码,并将满足练习的要求.

如果成功完成分配,程序应在运行时输出以下语句:

我的名字是Spot,我是一只狗

我的名字是费利克斯,我是一只猫

要求:

1)您必须有一个名为"Animal"的抽象基类,Dog和Cat类可以从中派生出来.

2)Animal基类必须从接口'IAnimal'派生,它是唯一应该从IAnimal派生的类.

3)由于所有动物都有一个名字,一个名字不是一个特定于狗或猫的属性,动物

基类应该是存储名称的位置以及实现WhatIsMyName get-property的位置.

4)您需要创建一个仅从Animal基类派生的Dog和Cat类.

5)Dog和Cat类应该实现WhatAmI get-property并返回相应的字符串值.

您无法更改的代码:

using System;

namespace IT274_U2
{
    public interface IAnimal
    {
        string WhatAmI { get; }
        string WhatIsMyName { get; }
    }

    public class TesterClass
    {
        public static void DescribeAnimal(IAnimal animal)
        {
            Console.WriteLine("My name is {0}, I am a {1}", animal.WhatIsMyName, animal.WhatAmI);
        }

        static void Main(string[] args)
        {
            Dog mydog = new Dog("Spot");
            Cat mycat = new Cat("Felix");
            DescribeAnimal(mydog);
            DescribeAnimal(mycat); …
Run Code Online (Sandbox Code Playgroud)

c# abstract-class interface

5
推荐指数
2
解决办法
3418
查看次数

如何实现.NET部署Nirvana?

我们的公司已经接近其"上线"日期(以及获得QA部门日期),我正在尝试定义正确的操作流程来支持这一点.我的一个重要考虑因素是如何避免不可避免地发生的部署/配置问题.有没有人找到一个很好的解决方案,将构建交给非程序员,以便他们可以在QA,登台和生产环境中成功安装和配置它?

我们的完整环境由异构计划任务,Windows服务和网站组成,所有这些都可以通过并行部署进行扩展.值得庆幸的是,配置方式是一致的.不幸的是,它都通过.NET web/app.config文件进行管理.根据我的经验,QA和操作人员在尝试修改它们时总是陷入困境(对于大多数人来说,XML难以处理!)

这是我正在考虑的选项:

使用machine.config文件

这是我在实践中没有做过的事情,但看起来很有希望.如果我们创建一个machine.config模板,其中包含可能因环境而异的每个应用程序的每个设置,这将允许管理员对一个文件进行所有更改并将其部署到环境中的每台计算机.

优点:
这可能会减少部署系统所需的步骤数
缺点:
必须以某种方式记录配置架构更改
未知数:
我们使用自定义配置节和其他引用程序集的配置扩展.这是否需要我们在机器的GAC中安装.NET程序集?

在构建过程中执行配置文件操作

如果我们设置QA,登台和生产环境,使它们看起来与我们的软件(虚拟服务器和LAN等)完全相同,那么QA应该能够将没有配置更改的现成软件直接转换到登台环境,并进入生产阶段.通过这种设置,理论上我们可以将QA预先配置的foo.config文件交给无人接触的文件.

优点:
工程部门将更擅长确保配置文件有效
缺点:
对于工程学来说,了解生产配置可能被认为是不好的安全实践(一个不好的论点,恕我直言)

拥有网络集中设置存储库

这个对我来说看起来并不吸引人,因为我尝试了三种最终失败的方式:

  1. 在以前的公司,我们在数据库中有配置设置,但当然你不能将它们全部放在那里,因为你需要配置该数据库的连接字符串.此外,在部署之前确保数据库得到适当更新同样困难.
  2. 我们尝试过的另一种方法是使用一种联网服务作为集中式注册表.这几乎可以工作,但是本地缓存总是存在问题,确保配置服务器的URL已正确配置,当然还要配置配置服务器.
  3. 活动目录?EW!需要我多说?

思考?

您使用我正在考虑的选项有多成功?有没有其他替代方案适合您?

.net configuration production-environment

5
推荐指数
1
解决办法
473
查看次数

使用Perl逐行连接两个文件有多少种不同的方法?

假设file1看起来像这样:

bye bye
hello
thank you

而file2看起来像这样:

chao
hola
gracias

所需的输出是这样的:

bye bye chao
hello hola
thank you gracias

我自己已经提出了五种不同的方法来解决这个问题.但我认为必须有更多的方法,可能更简洁,更优雅的方式,我希望我能学到更多很酷的东西:)

以下是我迄今为止所尝试的内容,基于我从之前问题的许多解决方案中学到的内容.此外,我正试图消化或内化我从Llama书中获得的知识.

代码1:

#!perl
use autodie;
use warnings;
use strict;

open my $file1,'<','c:/file1.txt';
open my $file2,'<','c:/file2.txt';

while(defined(my $line1 = <$file1>)
        and defined(my $line2 = <$file2>)){
    die "Files are different sizes!\n" unless eof(file1) == eof(file2);
    $line1 .= $line2;
    $line1 =~ s/\n/ /;
    print "$line1 \n";
}
Run Code Online (Sandbox Code Playgroud)

代码2:

#!perl
use autodie;
use warnings;
use strict;

open my $file1,'<','c:/file1.txt';
my @file1 = <$file1>;

open …
Run Code Online (Sandbox Code Playgroud)

perl concatenation

5
推荐指数
3
解决办法
5089
查看次数

最大限度地减少实施可打印报告的痛苦

在报告方面,您如何最大限度地减少开发过程中的痛苦?

对于Web框架,有一种非常直接的方式来生成内容以及以图形方式设计它; 内容通过HTML在语义上表示,设计通过CSS单独指定.并且浏览器与它们呈现输出的方式相当一致(并且不一致性是众所周知的并且可以计划).甚至还有WYSIWYG编辑器来帮助那些不太懂CSS的图形设计师.

但是我们如何处理印刷内容呢?

在一家公司,我创建了一个如下工作的流程:脚本通过XML生成语义表示.XML通过XSLT传递以生成XML-FO文档.然后,这被传递给另一个工具(我相信Apache FOP)来生成PDF.这对该公司来说效果很好.

然而,在这家公司,输出外观对管理层很重要,我们有一个图形设计师.目前,我们正在使用报告工具(Developer Express,版本8.1中的XtraReports).这不错; 它输出到各种格式,有一个WYSIWYG设计器,报告通过C#类实现,它支持数据绑定到数据集(不幸的是,不是POCO).但是,我们在此设置中遇到了一些主要的难点:

  • 报告框架在如何布置和分组报告范围方面存在重大限制
  • 可呈现的元素,尤其是图表,缺乏我们微调和实现模型外观所需的功能.
  • 在报告中分享样式和布局没有好办法,类似于我们可以通过CSS获得的内容.
  • 可重复使用部件的良好可组合性很难实现.所以我们最终得到了很多功能的复制和粘贴继承; 每当我们需要对所有报告进行全面更改时,这都是坏消息.

现在,也许有一些kick-ass框架可以消除报告框架的痛苦,但我认为它们都有自己的弱点.您是否拥有适合您的框架或流程,并减少报告中固有的痛点?

printing asp.net frameworks reporting

5
推荐指数
1
解决办法
709
查看次数

规定lambda表达式的公认标准是什么?

可能重复:
如何在.Net中的lambda表达式中使用"=>"

有时,当帮助另一个程序员编写代码时,我会指示我希望他们输入什么.有时这可能是一个令人沮丧的练习,直到程序员习惯了你如何用语言表达代码(即"分配5到x"对比"x等于5" ).我还没想到的一件事是如何在C#中有效地发音lambda表达式.

例如,如果我想(x, y) => x * y输入,这是我尝试过的各种事情:

我:Lambda表达式取x和y,得x倍y

他:"嗯?"

我:代表服用x和y,返回x倍y

他:delegate(x, y) { return x * y; }x和y是什么类型的?

我:x和y的元组,右箭头x乘y

他:"呃?"

我:打开paren,x,逗号,y,close-paren,右箭头x次y

他:(x,y) - > x*y

我:呃,双箭头?

他:>>

我:叹气......等于大于

他:(哦,大于或等于?)> =

我:好的,让我开车一会儿!

有问题的程序员知道lambda表达式是什么,但是它们很难沟通.我相信我们会学习如何,但我甚至都不知道我是否正确行事.您是否找到了一种成功的方法来指示C#中这种相对较新的语言结构?或者更好的是,是否有一种语言中立的方式来发音lambda表达式?

.net c# lambda dictating

5
推荐指数
1
解决办法
359
查看次数

数组切换案例声明

我有一个像这样的子数组的数组

Array
(
    [0] => Array
        (
            [customers] => Array
                (
                    [id] => 

                )

            [Products] => Array
                (
                    [id] => 

                )

            [Models] => Array
                (
                    [id] => 151


                    [SubModels] => Array
                        (
                            [ol] => 
                        )

                    [Noice] => 
                )

        )
Run Code Online (Sandbox Code Playgroud)

我想在数组上创建一个switch语句

所以这样的事情

switch($array){

    case Products:

    case customers:

    case Models:
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做 谢谢

php cakephp-1.3

5
推荐指数
1
解决办法
2万
查看次数

找出所有可能的欧拉循环

我已经实现了一种算法,用于在无向图中查找给定起始顶点的欧拉循环(使用 DFS 并删除访问过的边),但它总是只返回一条路径。如何修改算法以搜索顶点的所有可能的欧拉循环?

这是相关代码:

typedef int Graph[200][200]; // adjacency matrix
int v, e; // vertex count, edge count

......

void DFS(Graph &G, int x) {
    int i;
    Push(x);
    for (i = 0; i < v; i++)
        if (G[i][x] > 0) {
            G[i][x] = 0;
            G[x][i] = 0;
            DFS(G, i);
            break;
    }
Run Code Online (Sandbox Code Playgroud)

}

algorithm graph-theory graph

5
推荐指数
1
解决办法
5109
查看次数

更改应用Knockout绑定的顺序

我正在创建一个Knockout绑定,它将作为jQuery小部件的包装器.此小部件将事件处理程序应用于子元素.不幸的是,窗口小部件的事件处理直接应用于子元素,而不是委托.问题是,我有一个foreach在相同的元素结合,但我需要自定义的结合应用后,foreach应用结合.

显然,正确的做法是修复jQuery插件,但目前这不是一个选项.我想知道我是否有任何好的解决方案选项.例如,有没有办法做以下任何一种情况?

  1. 检测是否已应用特定绑定
  2. 影响绑定应用程序的排序
  3. 安全地强制进行另一次绑定

更新:

我应该提到的一个方面是这个自定义和foreach绑定驻留在模板中.因此,直接修改DOM的解决方案对我来说不起作用,因为它实际上会修改模板.

knockout.js

5
推荐指数
2
解决办法
2789
查看次数

如何使用 Rx 观察下降沿?

我有一个像这样的输入序列8, 7, 6, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 4。结果应该显示的是0, 0

是的,这很容易。0, 0但当输入仅为 时,我不希望结果为0, 0

这里的问题是,它应该只0在前一个值大于零时才发布。

c# system.reactive

5
推荐指数
1
解决办法
169
查看次数

强制Chrome for Windows尊重子像素行高

我有一个棘手的CSS问题.这是一个事实,即该网站的"主旋律"的CSS是第三方(它无法改变,但我们可以用另一种样式覆盖),以及网页上的所有使用绝对定位布局,加剧尺寸(这不能改变).

在这个第三方CSS的某个地方,我们有这个声明:

body {
    line-height: 1.3;
}
Run Code Online (Sandbox Code Playgroud)

一个div页面上有一个font-size14px,使得其行高18.2px.这对于典型的网站来说很好.但是,由于所有内容都使用像素位置绝对定位,因此字体渲染差异正在发挥作用.具体来说,Windows中的谷歌浏览器正在将其line-height缩小到18px.这意味着divChrome for Windows 中的大量内容比任何其他浏览器都要短得多.所有其他浏览器似乎都支持亚像素线高度.

有没有办法强制Chrome for Windows尊重子像素行高,这样它的呈现方式与其他浏览器不同?

更新

这是一个JSFiddle,展示了它的不同之处.如果您比较Chrome for Windows和Firefox for Windows中的高度,您会发现0.2px每行都有差异.

css google-chrome

5
推荐指数
1
解决办法
991
查看次数