c#-7.0

    1熱度

    1回答

    我正在試驗C#7的新功能,尤其是本地方法。我寫了Linq Where Operator。 我實現了迭代器塊作爲本地方法(事實上,我閱讀文章說本地方法是異步方法和迭代器的完美解決方案)。 我想知道這兩個實現是否有區別,如果不是哪一個最好? 先執行: 這裏我引入了新的泛型類型參數的本地方法,新名稱爲參數... public static IEnumerable<TSource> Where<TSour

    -4熱度

    1回答

    我正在Windows XP計算機上運行的Visual Studio 2017中構建應用程序,但能夠使用C#7.0元組文字將是我的解決方案的理想組件。 我想我可能只是增加兩個的NuGet包,Microsoft.Net.Compilers和System.ValueType,使我的可執行文件使用的語法像(string foo, string bar)但我發現了一個語法錯誤,CS8179 C# Prede

    5熱度

    1回答

    在C#7中,我們可以實現Deconstruct方法,該方法在將對象分配給具有匹配類型的元組時將被調用。 我想知道爲什麼微軟決定實施這個「魔法」。有一種特殊命名的方法不能從任何地方繼承,如果你命名它並輸入正確的參數,那麼你就可以將這個對象分配給相應的元組。 我會想象,設計團隊會爲此創建一個接口。 喜歡的東西: public interface IDecontructible<T1> {

    6熱度

    1回答

    在.cshtml視圖中使用插值字符串會導致以下intellisense錯誤:Feature 'interpolated strings' is not used in C#5. Please use language version 6 or greater.此和其他C#7語言功能在編譯代碼(.cs文件)中工作, 。 正如您在下面看到的,最新的主要版本是 C#7。 根據this question評

    3熱度

    3回答

    我想ValueTuple類在C#中,我有一個關於性命名疑問,讓我們來看看: 如果實例化一個ValueTuple宣佈這樣的對象:var tuple1 = (Name: "Name1", Age: 25); 我們可以命名的屬性, 但是,像這樣的:ValueTuple<string,int> tuple2 = (Name: "Name1", Age: 25); ,我們得到的是說,名稱將被忽略警告,所以

    5熱度

    2回答

    我有一個方法正在採用Action<string>(請參閱下面的簡單示例),但在構建Action的調用方法中,Resharper建議本地函數應該使用。 圍繞使用本地函數代替動作推薦的做法是什麼,這有什麼重要的,或者是否有需要注意的陷阱? public void Caller() { string holder; Action<string> act = s => holder

    3熱度

    2回答

    我正在努力通過編寫一些可以爲我創建屬性的助手來使EF更容易進行單元測試。我有一對夫婦的支持領域 private Mock<DbSet<Workflow>> mockedWorkFlows; private Mock<DbSet<WorkflowError>> mockedWorkFlowErrors; 而且我希望有一個通用的功能,能夠回到我正確的支持字段具有以下功能 public Mock<

    0熱度

    1回答

    我有以下代碼: public static class ItemsHelper { public static object product { get { return HttpContext.Current.Items["product"]; } set { HttpContext.C

    5熱度

    1回答

    C#7中的新ValueTuple類型實現IComparable,但我已經能夠在其實現上找到這個唯一的documentation,只是表明CompareTo的返回值表示相對位置「按排序順序」。它沒有說明實際所指的「排序順序」。 通過檢查來源,我可以發現訂單是我期望的 - 它委託比較第一個字段的默認Comparer,然後逐個使用其他字段,以打破關係。但是,如果沒有保證它不被視爲可以在不違反規範的情況下

    2熱度

    1回答

    目前在c#7(版本15.3.4)中,以下代碼有效編譯,但兩個變量都合法無法使用。 switch(fruit) { case Apple apple: case Orange orange: // impossible to use apple or orange break; case Banana banana: break; }