我在扩展类型(在F#中)有以下代码,它调用它继承的类的受保护方法(在C#中),但我得到了异常(见下文).这有解决方法吗?
let getPagereference id =
this.ConstructPageReference(id)
Run Code Online (Sandbox Code Playgroud)
无法访问成员或对象构造函数"ConstructPageReference".只能在声明类型中访问私有成员.受保护的成员只能从扩展类型访问,并且无法从内部lambda表达式访问.
更新:
我试过跟随但得到相同的结果
let getPagereference id =
base.ConstructPageReference(id)
Run Code Online (Sandbox Code Playgroud)
更新2(解决方案):
这是代码:
type MyNewType() =
inherit SomeAbstractType()
let getPagereference id =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = getPagereference id
Run Code Online (Sandbox Code Playgroud)
这应该是这样的:
type MyNewType() =
inherit SomeAbstractType()
member this.ConstructPageReference(id) =
base.ConstructPageReference(id)
override this.SomeMethod()=
let id = 0
let pr = this.ConstructPageReference(id)
Run Code Online (Sandbox Code Playgroud) 就像真的很慢.
我有一个64位,8核,12 gig ram windows 7主机.我给64位Windows 7虚拟机提供了4个内核和4个内存的ram,我正在尝试运行visual studio 2010(和sql server - 但就是这样).
它工作了几天,但随后资源使用率从图表中消失 - 在任何时候都接近100%的CPU.我关闭了Windows 7的视觉效果,它立即下降到正常水平.然而,无论何时我尝试在视觉工作室做任何事情,它都会立即回升.
有类似钻机的人有类似的经历吗?我知道人们已经成功地取消了这个设置并对它非常满意所以我想知道我是否只是在某个地方配置不好.
我是C的新手,我在向程序输入数据时遇到了问题.
我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
int a;
char b[20];
printf("Input your ID: ");
scanf("%d", &a);
printf("Input your name: ");
gets(b);
printf("---------");
printf("Name: %s", b);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它允许输入ID,但它只是跳过其余的输入.如果我改变这样的顺序:
printf("Input your name: ");
gets(b);
printf("Input your ID: ");
scanf("%d", &a);
Run Code Online (Sandbox Code Playgroud)
它会工作.虽然,我不能改变秩序,我需要它原样.有人能帮我吗 ?也许我需要使用其他一些功能.谢谢!
我是一个具有UNIX SCCS和Microsoft Visual SourceSafe经验的Git newbee.
在SCCS中,每个文件都有一个版本(I%),它由Release(%R),Level(L%),Branch(%B)和Sequence(S%)组成.%I等于R%.%LB%.%S,好吗?这些被称为ID关键字.
目的是在检查它们之前在源代码中插入这些ID关键字,然后当您将它们签出为只读(不更改)时,它会将它们转换为它们的版本号.例如:
printf("Version s \n","%I");
...会变成,
printf("版本%s \n","1.4.6.2");
哪个会打印,
版本1.4.6.2
SCCS逐个文件地跟踪版本,并在每次签入时递增它们.
Git中有什么接近的吗?
我想制作一个人们可以添加到他们的博客,网站等的html/js小部件.
我之前从未制作过小工具,所以我想知道应该做什么,不做什么.例如,我如何制作样式?内联,自己的CSS文件或什么是最佳实践?我相信我不能使用头部和身体的东西.那么h1,h2等呢?他们搞砸了有小部件的网站还是我可以使用它们?
如果您有任何好的提示,我希望听到这些.
谢谢.
查询:
SELECT TOP 1 ReportInvoked , EmailSent
FROM tblReportInvoker
WHERE WebUserId = 12345
Run Code Online (Sandbox Code Playgroud)
这给了我两位值.我真正想要的是一个标量结果,它是这两个值的逻辑和.这可能吗?这似乎很容易,但我找不到可行的语法.
编辑:当然,我聪明的计划中的缺陷是,如果两个进程都失败,那么它将是真的,因此将查询修改为:
SELECT TOP 1 (ReportInvoked & EmailSent) & (1 & ReportInvoked) AS 'ReportSent'
FROM tblReportInvoker
WHERE WebUserId = 12345
Run Code Online (Sandbox Code Playgroud) 我正在制作一个简单的绘图程序.到目前为止,我能够使用给定的颜色描绘路径并且一切都很好.我想知道是否有办法用纹理而不是颜色来抚摸它.比方说,我想给路径看铅笔线.关于如何做到这一点的任何想法?
在此先感谢您的帮助!
我在一个将行插入表的存储过程中有类似于以下的代码,我想将最后一列(FieldD)设置为@prmSomeValue,除非它是null,否则只需使用为其定义的默认值柱.
IF (@prmSomeValue IS NULL)
INSERT INTO MyTable (fieldA,FieldB,FieldC)
SELECT A,B,C
FROM MyOtherTable
ELSE
INSERT INTO MyTable (fieldA,FieldB,FieldC,FieldD)
SELECT A,B,C,@prmSomeValue
FROM MyOtherTable
Run Code Online (Sandbox Code Playgroud)
这有效,但违反了DRY原则.我试图用一个插入语句找到一些方法来做到这一点.以下伪代码的行.
INSERT INTO MyTable (fieldA,FieldB,FieldC,FieldD)
SELECT A,B,C,ISNULL(@prmSomeValue,DEFAULT)
FROM MyOtherTable
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
更新 - 再一次扭曲
默认约束不是文字值,而是如下所示的函数.
...DEFAULT (suser_sname()) FOR [FieldD]
Run Code Online (Sandbox Code Playgroud)
更新
我终于受到了惩罚并选择了较小的邪恶,只是将默认值函数复制到我的查询中,而不是落入为列配置的默认值.我不喜欢它,但它可以在我的查询中减少重复完成工作.
INSERT INTO MyTable (fieldA,FieldB,FieldC,FieldD)
SELECT A,B,C,ISNULL(@prmSomeValue,suser_sname())
FROM MyOtherTable
Run Code Online (Sandbox Code Playgroud) 我应该写一个程序来做 2 + 2 = 4 和 2.2 + 2 = 4.2。
我已经这样做了,因此它将所有内容都视为浮点数,但这是“错误的”。我必须区分它们。这是我到目前为止所拥有的:
%{
#include <stdio.h>
#include <ctype.h>
%}
%token <dval> FLOAT
%token <ival> INTEGER
%union
{
float dval;
int ival;
}
%type <dval> command exp term factor
%%
command : exp {printf("%f\n",$1);}
;
exp : exp '+' term {$$ = $1 + $3;}
| exp '-' term {$$ = $1 - $3;}
| term {$$ = $1;}
;
term : term '*' factor {$$ = $1 * $3;}
| …Run Code Online (Sandbox Code Playgroud)