小编And*_*i V的帖子

在某些2008 R2环境中使用WebBrowser控件的COMException

在某些2008 R2环境中而不是其他环境中,我正在COMExceptions使用System.Windows.Forms.WebBrowser控件.无论是通过DocumentText属性指定内容还是Navigate使用URL参数调用方法,我都会得到相同的异常:

COMException - 错误HRESULT E_FAIL已从对COM组件的调用返回.

System.Windows.Forms.UnsafeNativeMethods.IWebBrowser2.Refresh()

我发现在指定之前设置ScrollBarsEnabled属性会导致此异常,并且这似乎是在浏览器没有内容时调用方法(上面引用)的结果(此处的最后一篇文章).解决方法是设置一些模拟内容并调用.但即使有了这个,它也会在稍后加载内容时导致上述异常(在另一个线程中完成).WebBrowserDocumentTextRefreshApplication.DoEvents()

请注意,DocumentCompleted我指定的委托正在被命中,但它WebBrowser.axIWebBrowser2.StatusText显示已发生异常,并且WebBrowser.Document为空.

我可以提出一个简单的应用来重现这个问题,但我必须找到一个2008 R2实例,其中错误可以重现以便调试.我更想问是否有人对可能影响或导致问题的想法有所了解,可能与COM安全等有关.

请注意,我执行WebBrowserSTA Apartment状态.

任何想法或建议将不胜感激.提前致谢! - 最大

c# com webbrowser-control comexception hresult

5
推荐指数
0
解决办法
1430
查看次数

在泛型类中同时具有"class"和"new()"约束是没有意义的吗?

我想知道在定义泛型类时是否有"class"和"new()"约束是否合理.如下例所示:

class MyParanoidClass<T> where T : class, new()
{
 //content
}
Run Code Online (Sandbox Code Playgroud)

两个约束都指定T应该是引用类型.虽然"类"约束并不意味着隐式构造函数存在,但"new()"约束确实需要带有附加公共构造函数定义的"类".

我的最后一个问题是:我在上面的语句中定义泛型类是否有任何好处,或者"new()"是否封装了两个约束?

c# generics constraints

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

CSS弹出菜单在JQuery布局窗格中溢出/重叠

我使用JQuery布局并仅定义北,西和中间窗格.在左侧(西部窗格)我正在构建一个CSS弹出菜单.随着网络上大量的CSS弹出菜单,我可以毫不费力地使用它.我面临的问题是弹出菜单与中心窗格不重叠.您可以在我的JSfiddle示例中看到此行为.我试过设置,overflow: visible; z-index: 10001;但没有解决任何问题.我接下来可以尝试什么?

css popup jquery-layout

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

具有可折叠div的流布局,可维护行结构

我有一个用可折叠的div制作的流畅布局.当它们坍塌时,它们会在下面留下一个空的空间,它会被下一个div(它们都有float: left)自动填充.然而,这看起来不太好,我想保持"行结构"而不会失去移动div的能力(当窗口变小时).JSFiddle在这里.

问题描述

CSS片段:

.clickable {
     border: 1px dotted black;
     width: 200px;
     float: left;
     height:50px;
     margin-right:20px;
     margin-bottom:20px;
}
Run Code Online (Sandbox Code Playgroud)

HTML片段:

<html>
<head><title>Layout test</title></head>
<body>
   <div class="clickable">&nbsp;1&nbsp;</div>
   <div class="clickable">&nbsp;2&nbsp;</div>
   <div class="clickable">&nbsp;3&nbsp;</div>
   <div class="clickable">&nbsp;4&nbsp;</div>
   <div class="clickable">&nbsp;5&nbsp;</div>
   <div class="clickable">&nbsp;6&nbsp;</div>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)

有纯CSS解决方案吗?我不想乱用JavaScript.我知道我可以动态确定列数,然后将它们包装成"行",但我还不愿意使用这个解决方案.

html css

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

将lambda表达式参数限制为类的属性

我有一个基类,需要处理派生类的属性名称(显式访问).为此,我创建了一个将lambda表达式作为输入的方法:

private string GetMemberName(Expression<Func<object>> expression)
{
    //gets the property name (MemberExpression or UnaryExpression)
    //out of scope
    return propertyName;
}
Run Code Online (Sandbox Code Playgroud)

这允许我像这样调用方法:

derived.GetMemberName(() => derived.MyPropertyInt);
derived.GetMemberName(() => derived.MyPropertyStr);
Run Code Online (Sandbox Code Playgroud)

问题是object根本不是限制性的.我也可以打电话:

derived.GetMemberName(() => "something"); //does not "return" anything but compiles (out of scope)
derived.GetMemberName(() => anotherClass.RandomMember); //not derived from "base"
Run Code Online (Sandbox Code Playgroud)

我如何限制GetMemberName方法,以便它只能接受从我的基类派生的类的成员作为输入?设置GetMemberName(Expression<Func<MyBaseClass>> expression)限制对整个班级的访问.设置GetMemberName(Expression<Func<MyBaseClass, object>> expression)限制对当前实例的访问,但仍允许传递"随机"对象.

编辑:注释derived.GetMemberName(() => "something");是在返回属性名称的上下文中,而不是lambda表达式的"值".该GetPropertyName方法不会返回任何内容,因为我只是在分析MemberExpressionUnaryExpression.

c# lambda

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

整数(文字)联合类型,以 NaN 作为有效返回值

我有一个带有联合返回类型的(比较)函数。它可以返回-1,10. 但是,当至少一个要比较的项目未定义时,我需要一种特殊情况(“结果”)。编译器允许我添加null作为潜在的返回值,但不允许NaN(这在某些情况下是有意义的,例如比较数字或日期)。

这编译

function myFunc(item1: MyType, item2: MyType): -1 | 0 | 1 | null {
   ...
}
Run Code Online (Sandbox Code Playgroud)

但对于这个,编译器说“找不到名称 NaN”:

function myFunc(item1: MyType, item2: MyType): -1 | 0 | 1 | NaN {
   ...
}
Run Code Online (Sandbox Code Playgroud)

为什么NaN不允许?有办法使用吗NaN

typescript typescript2.0

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

当泛型类型设置为 never 时,泛型条件类型解析为 never

我需要一个泛型类型,当(此属性的)泛型参数为 时,该泛型类型可以从指定类型中排除泛型属性never。为了实现这一点,我使用了Omit和 条件类型。例如,当泛型参数设置为 时,number它的行为会按预期进行,但当泛型类型设置为 时never,类型会解析为never而不是排除指定的属性 ( Playground ):

type BaseType<T> = {
  prop1: string;
  genProp1: T;
};

type Excluded<T> = T extends never ? Omit<BaseType<T>, "genProp1"> : BaseType<T>;

const obj1: Excluded<number> = {
  genProp1: 5,
  prop1: "something, something"
};

//obj2 is never
const obj2: Excluded<never> = {
  prop1: "dark side" //error: Type 'string' is not assignable to type 'never'
};
Run Code Online (Sandbox Code Playgroud)

为什么要这样做以及如何让它返回正确的类型 ( { prop1: string })?

编辑:比较而null …

generics typescript conditional-types

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

C#执行速度:等于(==)vs不等于(!=)

我正在试图找出if语句的一些最佳实践.当我需要打开一些相等性,即需要一个if-else结构时,我通常会在"不等于"上写条件.这背后的原因通常是,当一个非成功的结果出现时,指令的数量和它们的复杂性都很低.比较过程有什么不同吗?在等于(==)和不等于(!=)之间的执行时间是否存在差异?

示例(一个相当简单的例子,但总体思路成立):

string myString = "weekend";
if(myString != "weekend")
{
    Console.WriteLine("No fun...!");
}
else
{
    //do a bunch of fun stuff with relatively high complexity
    //can expand over many lines of code
}
Run Code Online (Sandbox Code Playgroud)

如果我改变if-else语句的顺序,执行时间有什么不同吗?

string myString = "weekend";
if(myString == "weekend")
{        
    //do a bunch of fun stuff with relatively high complexity
    //can expand over many lines of code
}
else
{
    Console.WriteLine("No fun...!");
}
Run Code Online (Sandbox Code Playgroud)

c# optimization if-statement

4
推荐指数
2
解决办法
2322
查看次数

我可以指定数组不可分配给记录吗?

我有一个类型为 的成员Record<number, MyType>。目前,我还可以为其分配一个数组。我明白了:数组是一个对象(typeof [] => 'object'),索引是键。但是,是否可以告诉编译器我不想允许将数组传递给我的类型变量Record<int, WhateverType>

const myRecord: Record<number, MyType> = []; // <= would like to have an error here
Run Code Online (Sandbox Code Playgroud)

arrays record typescript

4
推荐指数
1
解决办法
525
查看次数

如何重定向到索引 actionresult 而不是在 url 中显示索引

基本上,在我的控制器中,我重定向到 Index 操作:

return RedirectToAction("", new { id = id });
Run Code Online (Sandbox Code Playgroud)

除了 URL 栏显示controllername/index/id. 我希望能够避免在 URL 中显示“索引”。这可能吗?如果是这样,如何?

c# asp.net visual-studio asp.net-mvc-4

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

如何告诉 TypeScript 仅允许将字符串值作为函数参数的属性

我想编写一个泛型函数,它将泛型类型的属性名称作为参数。我需要让 TypeScript 断言该属性的值属于特定类型。考虑以下简化代码:

interface MyObject {
 myProp: number;
 mySecondProp: string;
 myOtherProp: string;
 myFlagProp: boolean;
}

const doStuff<T> = (obj: T, propName: SomeType) => { /***/ }
Run Code Online (Sandbox Code Playgroud)

我可以提取特定类型(例如)的所有属性string,但编译器将无法确切知道该属性的类型:

type StringProps<T> = { 
  [K in keyof T]: T[K] extends string ? K : never }[keyof T] 
}

const doStuff<T> = (obj: T, propName: StringProps<T>) => { 
  obj[propName].indexOf("a"); // Property 'indexOf' does not exist on type 'T[{ [K in keyof T]: T[K] extends string ? K : never; }[keyof T]]'
} …
Run Code Online (Sandbox Code Playgroud)

generics typescript

0
推荐指数
1
解决办法
1066
查看次数