value-type

    1熱度

    2回答

    where T : struct約束允許將可接受類型參數的域限制爲值類型集(與包括值和引用類型的類型的超集相比),但似乎也完全禁止可空類型,儘管可爲空必然意味着現代版本的C#中的引用類型。 如果我想要接受像int?,DateTime?等增加可空性的值類型,同時拒絕像字符串,IList等本地可空的引用類型,該怎麼辦?這樣可以定義約束嗎?如果是這樣? 我真的很好奇學習如何實現這兩種情況:當用作參數的類

    -1熱度

    3回答

    我在這裏有點困惑。使用結構體時,我不能直接更改其字段,因爲整個結構體都是值類型的。 但是值類型字段的類呢?如果我有一個公共字段int X,我可以正確修改它。因此,其領域的價值型性質的唯一表現就是,當作爲一個論點獲得通過時,它是一個副本? 編輯:另外 Class A { int B=100; //this is a field, so reference type. But it is

    2熱度

    2回答

    說我有延伸AnyVal並使用Long內部的自定義類: case class Instruction(underlying: Long) extends AnyVal 當我添加Instruction s到這是專門爲Long集合,做了Instruction的需要拳擊? (是否有Scala集合而專門爲Long?我需要一個索引序列。)

    1熱度

    3回答

    我在SWIFT 3.0中將我的模型實現爲structs。其中幾個structs的代表應該能夠根據用戶的操作修改模型。 但是,當我將struct傳遞給delegate方法時,它會被複制。 你如何解決這個問題?你能強制編譯器通過這個struct作爲參考,還是唯一的選擇是使用class?

    0熱度

    1回答

    我有一個後續問題,我看到一個轉換str()輸入到int()類型的帖子。基於valueError和valueType的定義,我期望valueType異常已被使用,但它不起作用(當我嘗試它)。 ValueError的作品,但我不知道爲什麼,是不是int('一些字符串')一個錯誤類型的例子? 鏈接到原始訊息我指的是:Converting String to Int using try/except in

    1熱度

    1回答

    我最近在採訪中詢問了實際變量的存儲位置。 我回答價值類型變量存儲在堆棧和引用類型變量存儲在堆,但面試官要求我給一個程序實時情況。請檢查下面的程序,並幫助我在哪裏存儲值類型和誰去參考存儲type.If你可以給例如與程序這將是非常有益的或讓我知道的任何工具,我可以在VS檢查這些地方越來越存儲 class Program { int i = 5; bool a; stri

    1熱度

    1回答

    我正在從事一個項目,我們正在從事某些角度。一些角度存儲爲弧度,一些存儲爲度數。將所有內容存儲爲弧度或度數是不理想的選擇。 爲了修復這個單元,我在函數式編程語言中使用了一個叫newtype的概念。 This stackoverflow question解釋瞭如何在C#中實現類似的東西。 這是我工作的代碼,它完美地工作。 // Some constants, may get them from ano

    0熱度

    1回答

    想象一下以下的Scala值類型: class Prime(val self: Int) extends AnyVal { def +(i: Int): Int = self+i } 我怎樣才能讓我的功能inc接受Prime作爲它的參數,而且任何規則Int? def inc(i: Int): Int = i + 1 現在,我獲得下列類型的錯誤: scala> inc(new Pr

    -3熱度

    2回答

    我開始閱讀關於參考和值類型的更多信息。我有這種情況的一個問題: int[] array = { 1, 3, 5, 7, 9 }; var result = from element in array let v = element * 100 where v >= 500 select v; foreach (var element in resu

    0熱度

    1回答

    在下面的struct中,我使用函數來跟隨策略模式。 這是一個簡單的範圍枚舉器。 如果通過否定長度,則會反向枚舉。 它如何不按預期工作。當_move呼叫返回時,Position保持不變。 我想我知道原因,因爲結構被複制到某個地方。但我似乎無法找到複製的地方。 (使用類,而不是struct沒有回答我要找的。) internal struct RangeEnumerator<T> : IEnumerat