小编And*_*ech的帖子

C#:方差(协方差/反解)是多态性的另一个词吗?

我试图弄清楚这些词的确切含义,Covariance以及Contravariance在线的几篇文章和关于StackOverflow的问题,从我能理解的,它只是多态另一个词.

我对上述陈述是否正确?或者我弄错了?

c# polymorphism covariance contravariance variance

41
推荐指数
4
解决办法
6321
查看次数

在C#中用类型推断一个常量

在C#中,以下类型推断有效:

var s = "abcd";
Run Code Online (Sandbox Code Playgroud)

但是,当变量是常数时,为什么不能推断出类型呢?

以下引发了编译时异常:

const var s = "abcd"; // <= Compile time error: 
                      //    Implicitly-typed local variables cannot be constant
Run Code Online (Sandbox Code Playgroud)

c# type-inference constants

40
推荐指数
4
解决办法
3940
查看次数

大约10次左右的呼叫后,WCF停止响应(限制)

我有一个WCF服务和一个带有服务引用的应用程序,并且在应用程序中我有一个循环,并且在每次迭代中它都在调用这个wcf web服务中的方法.

问题是,在大约9次呼叫之后,它就会停止......如果你Pause按下VS的按钮,你会看到它停留在拨打电话的线路上.

等待一段时间后,抛出此TimeoutException:

在00:00:59.9970000之后等待回复时,请求通道超时.增加传递给Request的调用的超时值或增加Binding上的SendTimeout值.分配给此操作的时间可能是较长超时的一部分.


我对此进行了一些研究,发现了一些涉及在应用程序中编辑app.config的解决方案,以下是它的摘录:

<serviceBehaviors>
    <behavior name="ThrottlingIssue">
        <serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" />
    </behavior>
</serviceBehaviors>
Run Code Online (Sandbox Code Playgroud)

.

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
 maxArrayLength="2147483647" 
 maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
Run Code Online (Sandbox Code Playgroud)

然后,在我停止调试后,几分钟后,会弹出一条错误消息,告诉我发生了灾难性故障.

我该如何解决这个问题?当我使用普通的Web服务时,我没有遇到此问题.


供参考,以下是整体app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ThrottlingIssue">
                    <serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_IDBInteractionGateway" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                    allowCookies="false">
                    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
                        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" /> …
Run Code Online (Sandbox Code Playgroud)

c# wcf web-services throttling

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

WCF:什么是ServiceHost?

由于我目前正在学习使用WCF服务,因此我经常在互联网上遇到ServiceHost使用WCF服务时使用的教程.

究竟是什么ServiceHost


在我当前的项目中,我正在使用WCF服务并从我的应用程序中引用它,每当我想从我的应用程序中使用它时,我只是实例化它ServiceClient:

new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);
Run Code Online (Sandbox Code Playgroud)

然后访问我的网站的方法(OperationContract从实例S)(显然消耗的方法之前打开它,并随后关闭它OpenClose)

我的WCF服务是我的IIS主机,我只是.svc从我的应用程序访问实例化ServiceClient.

那么为什么以及在哪里ServiceHost使用?

c# wcf web-services servicehost

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

C:正确释放多维数组的内存

假设您有以下用于初始化多维数组的ANSI C代码:

int main()
{
      int i, m = 5, n = 20;
      int **a = malloc(m * sizeof(int *));

      //Initialize the arrays
      for (i = 0; i < m; i++) { 
          a[i]=malloc(n * sizeof(int));
      }

      //...do something with arrays

      //How do I free the **a ?

      return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用后**a,如何正确地从内存中释放它?


[更新](解决方案)

感谢Tim(以及其他人)的回答,我现在可以做这样的功能来从我的多维数组中释放内存:

void freeArray(int **a, int m) {
    int i;
    for (i = 0; i < m; ++i) {
        free(a[i]);
    }
    free(a);
}
Run Code Online (Sandbox Code Playgroud)

c malloc free memory-leaks memory-management

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

正则表达式删除文件的扩展名

我需要一个正则表达式,可以删除文件名的扩展名,只返回文件的名称.

以下是输入和输出的一些示例:

myfile.png     -> myfile
myfile.png.jpg -> myfile.png
Run Code Online (Sandbox Code Playgroud)

我显然可以手动执行此操作(即从最后一个点删除所有内容),但我确信有一个正则表达式可以自己执行此操作.

只是为了记录,我在JavaScript中这样做

javascript regex filenames

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

使用空赋值修复"使用未分配的局部变量".为什么?

使用这样的一段代码,编译器抱怨c.MyProperty:

MyClass c;

try { throw new Exception(); }
catch (Exception) { }

c.MyProperty = 2; // "Use of unassigned local variable 'c'".
Run Code Online (Sandbox Code Playgroud)

然而,如果你指定一个不抱怨nullc在初始化:

MyClass c = null;

try { throw new Exception(); }
catch (Exception) { }

c.MyProperty = 2; // no complains this time.
Run Code Online (Sandbox Code Playgroud)

那么,为什么这有效呢?如果c未分配a null并且编译器假设允许它,则不会抛出相同的异常c.MyProperty,Object引用未设置为对象的实例

c# exception variable-assignment

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

使用JavaScript在OpenLayers中绘制一条带有一条线的路径

我已经看到了这里提供的如何绘制线条的示例,但示例仅显示了如何使用鼠标进行操作,方法是单击.

我想要做的是在给定经度和纬度坐标列表的情况下使用JavaScript手动绘制线条.

我无法处理上面链接中提供的源的原因是因为他们只调用activate该功能,然后让用户指向并单击地图.

有没有人以编程方式在OpenLayers地图上绘制路径?

我想要做的就是:http://openspace.ordnancesurvey.co.uk/openspace/example4.html,但不使用OpenSpace.

javascript map openlayers

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

获取jQuery的所有mailto链接

我需要一个遍历文档的模式,并获取所有在其href中有mailto的链接:

<a href="mailto:an@email.com">text</a>
Run Code Online (Sandbox Code Playgroud)

我当然可以轻松获取所有a元素($("a"))并检查每个href属性以查看它是否指向mailto但我认为jQuery具有某种形式的模式匹配,这将允许我这样做.

实现这一目标的最佳方法是什么?

mailto jquery pattern-matching

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

C#:使用Lambdas的递归函数

以下不编译:

Func<int, int> fac = n => (n <= 1) ? 1 : n * fac(n - 1);
Run Code Online (Sandbox Code Playgroud)

在访问之前,可能不会初始化局部变量'fac'

你怎么能用lambdas做一个递归函数?

[更新]

这里还有两个我觉得有趣的链接:

  1. Eric Lippert的"为什么递归lambda导致明确的赋值错误?"
  2. C#中的匿名递归

c# recursion lambda factorial

27
推荐指数
3
解决办法
7240
查看次数