小编mic*_*ver的帖子

参数'T'与type参数同名

我正在尝试编写一个接受泛型输入的方法,如果输入是默认值则返回null,否则返回XElement.

顺便说一句,我对通用方法非常认真,而且显然是google-fu.

这是我到目前为止所拥有的:

public static class ConversionClass<T>
{
    public static XElement newXElementOrNull<T>(string name, T val)
    {
        if ((T.type == "String") && (val == String.Empty))
        {
            return null;
        }

        if (val == default(T))
        {
            return null;
        }
        else
        {
            return new XElement(name, val);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,C#不喜欢这样.

它在方法签名(newXElementOrNull)上说:

类型参数"T"与外部类型"AddXMLTest.Converter"中的类型参数同名

它突出了角度括号中的T和参数中的T.

更糟糕的是它不喜欢val == default(T)部分,因为它表示Operator'=='不能应用于'T'和'T'类型的操作数.

我究竟做错了什么?

c# generics

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

例外:最大消息大小

我有一个很难重现的错误。另外,有人告诉我写日志文件是一种安全责任。所以我想在例外中尽可能多地捕捉。

我找不到任何说明 C# 异常的最大长度是多少的地方。

我想粘贴一条 XML 消息(1 或 2K),也许还有我的本地数据模型(2k 左右)。

有哪些限制?任何最佳实践建议?

.net exception-handling c#-4.0

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

奇怪的mvc actionlink行为

由于某种原因,我的操作链接行为将用户发送到一个陌生的地

我有两个类:位置和属性.

从位置视图我想要一个链接,引导用户浏览该位置的属性:

@Html.ActionLink( "Browse", "Browse", "Property", new { id=item.ID } )
Run Code Online (Sandbox Code Playgroud)

所以我希望HTML链接和方法具有相同的名称:"browse".

我没有将它放在当前的控制器/视图中,而是将ID发送到属性控制器.请注意,"位置"一词不会出现在上面的行中.

但URL最终:

HTTP://本地主机:50164 /位置/浏览长度= 8

我希望它最终像这样:

HTTP://本地主机:50164 /属性/浏览长度= 8

MVC 3中的API似乎是:

ActionLink( "text to display as HTML link", "action name", "controller", "parameters" )
Run Code Online (Sandbox Code Playgroud)

这似乎是我如何做到的,但我得到了意想不到的结果.

我究竟做错了什么?

asp.net-mvc-3

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

与Linq一起迭代

我试图找到一种方法来从同一行中的Linq方法访问以前的值.

我希望能够在Linq中使用这个通用表单:

var values = Enumerable.Range( 1, 100 ).Select( i => i + [last result] );
Run Code Online (Sandbox Code Playgroud)

但是如果没有多行lambda并且将结果存储在其他地方,我找不到这样做的方法.

所以我在Linq能做的最好的斐波纳契总和是:

List<int> calculated = new List<int>( new int[] { 1, 2 });
var fibonacci = Enumerable.Range(2, 10).Select(i =>
    {
        int result = calculated[i - 2] + calculated[i - 1];
        calculated.Add(result);
        return result; // and how could I just put the result in fibonacci?
    }
);
Run Code Online (Sandbox Code Playgroud)

这看起来很难看.我可以使用常规for循环在较少的代码中执行此操作.

for (int i = 2; i < 10; i++)
{
    calculated.Add(calculated[i - 2] + calculated[i - 1]); …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

在反射器中列出

MSDN 文档说List集合来自:

System.Collections.Generic.List

但是当我拉起.NET Reflector 6时,这就是我所看到的System.Collections.Generic:

BitHelper

我设置

链表

一个LinkedListNode

队列

SortedDictionary

...

但没有名单.

如果我右键单击System.Collections.Generic然后"搜索MSDN",它会列出所有通用类并包含List.

但是我没有看到List .Net Reflector.

我在哪里可以找到它?

.net c# reflector

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

Linq SelectMany

嗨,我正在通过MS 101 linq示例编写代码.

"JoinOperators"让我很难过,因为我试图将查询表达式重构为lambda语法,反之亦然.

无论如何,在示例105中,我看到了这个查询表达式:

var supplierCusts =
    from sup in suppliers
    join cust in customers on sup.Country equals cust.Country into cs
    from c in cs.DefaultIfEmpty()  // DefaultIfEmpty preserves left-hand elements that have no matches on the right side 
    orderby sup.SupplierName
    select new
    {
        Country = sup.Country,
        CompanyName = c == null ? "(No customers)" : c.CompanyName,
        SupplierName = sup.SupplierName
    };
Run Code Online (Sandbox Code Playgroud)

我尝试以这种方式将其实现为lambda:

// something is not right here because the result keeps a lot of "Join By" stuff …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

角度工厂里$ http里面的$ http

我有一个角度工厂,使用get然后进行$ http调用.

 .factory('DataModel', function($http) {
Run Code Online (Sandbox Code Playgroud)

我有一个很好的.get.then.值返回,因为我最初返回一个函数来返回工厂值,所以一切都会在更改时更新.

现在我必须根据第一次返回的数据进行依赖调用.

首先尝试:$ http.get.then在$ http.get.then外部.

内部(从属)调用成功获取数据,但是当它更新工厂参数时,调用控制器仅拾取第一个.get.then.

接下来尝试:$ scope.$ watch.

angular.module('starter.services', [])
 .factory('DataModel', function($scope, $http) {
Run Code Online (Sandbox Code Playgroud)

如果我在其中放置$ scope参数,我会收到错误:

未知提供者:$ scopeProvider < - $ scope < - DataModel

所以我似乎无法使用$ scope.$ watch方法.

第三次尝试:回调?

我担心如果我使用回调方法,我会收回数据,但它不会像我的嵌套get.then那样更新.没有更新.

这是我的完整工厂:

angular.module('starter.services', [])

.factory('DataModel', function($http) {

    var days = {};
    var todaysFlavorIndex = 32;
    var todaysFlavorName = [32, 'Loading ...', "vanilla_chocolate_chip.jpg"];
    var daysLeftCalendar = [];

    var flavors = [];

    // calendar objects
    $http.get("https://jsonblob.com/api/5544b8667856ef9baaac1")
        .then(function(response) {
            var result = response.data;
            days = …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-scope ionic

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

使用exe在IIS上部署ASP.NET Core

ASP.NET Core 似乎将 Kestrel 服务打包在 .exe 文件中。

我看过的有关在 IIS 中托管 ASP.NET Core 应用程序的所有说明似乎都提到在 DLL 内有一个入口点(Main() 方法)。

如何暂存 .exe 文件以便 IIS 识别它?

我没有看到发布过程的这一部分,我认为这将是一个非常常见的步骤,因为这是 ASP.NET Core 的默认输出。

iis asp.net-core

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

使用Linq方法返回时间

一位朋友向我展示了这个Linq声明:

records.Where( r => r.Name == "Henry Clay" ).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

撇开FirstOrDefault()可以取一个lambda的事实,在所有Henry Clay记录转到FirstOrDefault()或者Where方法只返回第一个之前,是否检查所有Henry Clay记录?

换句话说,一些亨利克莱的记录永远不会传递给FirstOrDefault?

c# linq-to-entities

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

linq:单独的 orderby 和 thenby 语句

我正在通过这里的 101 个 Linq 教程进行编码:

http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

大多数例子都很简单,但这个例子让我陷入了循环:

    [Category("Ordering Operators")]
    [Description("The first query in this sample uses method syntax to call OrderBy and ThenBy with a custom comparer to " +
                 "sort first by word length and then by a case-insensitive sort of the words in an array. " +
                 "The second two queries show another way to perform the same task.")]
    public void Linq36()
    {
        string[] words = { "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry", "b1" };

        var sortedWords = …
Run Code Online (Sandbox Code Playgroud)

c# linq

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