小编Par*_*Ark的帖子

为什么我们使用'virtual'关键字(词源)?

大多数修饰符对我来说都是有意义的 - 抽象的,受保护的等等.但"虚拟"对于真正"可覆盖"的东西来说似乎是一个令人困惑的任意选择.

计算中的"虚拟"(虚拟机,虚拟内存)似乎意味着某种东西的抽象表示.我猜这源于光学,其中虚拟图像(通常在*vert*ed中)本身来自中世纪拉丁语virtuālis,意思是"有效".

所以在我看来,如果计算中的"虚拟"方法是最重要的方法,而不是一个可以覆盖的方法,那将更有意义.

也许我错过了一些关于"虚拟"的基本信息,任何人都可以更清楚地了解它为何被选中?

language-agnostic virtual

8
推荐指数
1
解决办法
1081
查看次数

扩展Angular Material2 MdTab组件

我正在尝试扩展其中一个Material组件MdTabGroup.使用开箱即用的MdTabGroup组件一切正常 - 材料库正确导入模块等.

这是扩展组件:

@Component({
    selector: 'md-custom-tab-group',
    templateUrl: 'custom-tab-group.html',
    ....
})
export class MdCustomTabGroup extends MdTabGroup {
  constructor( private _r : Renderer) {
    super(_r);
  }
}
Run Code Online (Sandbox Code Playgroud)

新组件在app模块中导入并声明,因此创建:

<md-custom-tab-group>
    <md-tab>one</md-tab>
    <md-tab>two</md-tab>
</md-custom-tab-group>
Run Code Online (Sandbox Code Playgroud)

自定义选项卡组(custom-tab-group.html)的模板与材质中的模板相同,例如

<div class="mat-tab-body-wrapper" #tabBodyWrapper>
    <md-tab-body role="tabpanel"
                 *ngFor="let tab of _tabs; let i = index"
                 ...
                 [content]="tab.content"
                 ...>
    </md-tab-body>
</div>
Run Code Online (Sandbox Code Playgroud)

运行时,_tabsViewChildren集合将正确填充 - 它包含md-tab原始标记中的声明,解释为"材质"选项卡组件.但是,custom-tab-group.html模板是不是有效.模板解析器现在不知道'md-tab-body'是什么.

具体 -

无法绑定到'content',因为它不是'md-tab-body'的已知属性.

但是当我拿起新模板时,我认为它根本不知道md-tab-body是什么.

问题是 - 如何纠正此行为并使扩展组件正常工作?

inheritance angular-material2 angular

7
推荐指数
1
解决办法
1532
查看次数

C#方法参数语法 - 这是什么意思?

一旦我知道这意味着什么,可能有更好的方式表达这个问题,但我不知道从哪里开始.

这是StreamReader的Read方法:

public override int Read([In, Out] char[] buffer, int index, int count) { ... }
Run Code Online (Sandbox Code Playgroud)

那个"In,Out"位 - 它是什么,它做了什么,它叫什么?

c# parameters syntax

6
推荐指数
1
解决办法
188
查看次数

Javascript全局范围分配

我理解全局范围和javascript变量及其一般不受欢迎的问题; 并且你到处找到它们.以下(在浏览器中)是等效的:

var foo = 3; // foo === 3, window.foo === 3
bazz = 10; // bazz === 10, window.bazz === 10
Run Code Online (Sandbox Code Playgroud)

在全局范围内使用var关键字声明变量与在代码中的任何位置声明它没有var相同:您的变量被分配给根(窗口)对象.

我经常看到的一种技术(例如设置谷歌分析)是这样的:

var _gaq = _gaq || [];
Run Code Online (Sandbox Code Playgroud)

...并且我遵循以下推理:如果_gaq已被声明使用,那么如果不将其创建为数组.它允许粗心编码不覆盖已分配给全局变量_gaq的任何值.

我不明白为什么会抛出错误:

_gaq = _gaq || [];
Run Code Online (Sandbox Code Playgroud)

它们看起来与我相同:_gaq应该取_gaq的值或者初始化为数组.但它引发了一个引用错误 - 我的问题是:它们为什么不同?

javascript global-variables

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

为什么 Photoshop 文件以 8BPS 开头?

几乎从一开始,Photoshop 文件就以 8BPS 开始。(我已将其验证回 2.5 版)它在某些时候一定具有某种意义。

我认为 8B 可能是指位/通道,但将其保存为 16 或 32 没有区别。PS 可能是 PhotoShop,但也可能不是。与 Mac 保存文件的方式有关吗?

photoshop hexdump abbreviation

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