Я хочу “, чтобы (международный) пустой указатель” возвратил меня 0

Как я могу добраться 0 как целочисленное значение от (int)null.

РЕДАКТИРОВАНИЕ 1: Я хочу создать функцию, которая возвратит меня значения по умолчанию для пустого представления в их соответствующих типах данных.

РЕДАКТИРОВАНИЕ 2: Как я могу работать в этом сценарии на использование значения по умолчанию.

(международное) Значение

Где Значение может быть нулевым или любое целочисленное значение. Я не знаю тип данных значения во время выполнения. Но я гарантирую, что Значение должно или содержать нулевое или Целочисленное значение только.

11
задан Shantanu Gupta 19 January 2010 в 20:06
поделиться

6 ответов

Можно использовать Nullable structure

int value = new Nullable<int>().GetValueOrDefault();

Можно также использовать ключевое слово по умолчанию

int value = default(int);

После второго редактирования:

Вам нужна функция, которая получает любой тип параметра, поэтому будет использоваться объект. Ваша функция аналогична методу расширения Field на DataRow

public static T GetValue<T>(object value)
{
    if (value == null || value == DBNull.Value)
        return default(T);
    else
        return (T)value;
}

Используя эту функцию, если вы хотите, чтобы int (и вы ожидаете, что значение будет int), вы вызываете его как:

int result = GetValue<int>(dataRow["Somefield"]);
25
ответ дан 3 December 2019 в 00:44
поделиться

Общий метод, который возвращает актуальный экземпляр объекта или значение по умолчанию, может быть реализован следующим образом:

static T Cast<T>(object value) {
    if (value is T)
        return (T)value;
    else
        return default(T);
}

Таким образом, использование допустимого значения принесет себе значение:

int value = Cast<int>(4); //value = 4

И нулевое значение получит по умолчанию:

int value = Cast<int>(null); //value = 0

Обратите внимание, что поскольку метод имеет объект в качестве аргумента, это приведет к боксу при использовании со структурными объектами (вроде int).

2
ответ дан 3 December 2019 в 00:44
поделиться

В Firefox < object > фиксирует все щелчки и не позволяет им выйти из документа SVG. Разумным обходным путем является покрытие SVG другим элементом, который получает щелчок первым.

К счастью, это можно сделать с помощью CSS:

a {position:relative; display:inline-block;}
a:after {content:""; position:absolute; top:0; left:0; bottom:0; right:0;}

Вы можете добавить псевдокласс : -moz-any-link в селектор, чтобы сделать его только Gecko.

-121--3140651-

Невозможно использовать перечислитель, необходимо выполнить цикл с индексом, начиная с последнего предмета:

for (int n = listBox1.Items.Count - 1; n >= 0; --n)
{
    string removelistitem = "OBJECT";
    if (listBox1.Items[n].ToString().Contains(removelistitem))
    {
        listBox1.Items.RemoveAt(n);
    }
}
-121--3509334-

Невозможно преобразовать null в int, поскольку int является типом значения. Вы можете поместить его в int? , хотя.

Чего вы хотите добиться?

0
ответ дан 3 December 2019 в 00:44
поделиться

Вы можете использовать ключевое слово по умолчанию , чтобы получить значение по умолчанию любого типа данных:

int x = default(int);        //  == 0
string y = default(string);  //  == null
// etc.

Это работает с универсальными параметрами:

Bar<T> Foo<T>() {
    return new Bar<T>(default(T));
}

, если у вас есть Переменная типа объекта , которые могут содержать NULL или значение типа INT , вы можете использовать Nullable Times и ?? Оператор для безопасного преобразования в целое число:

int a = 42;
object z = a;
int b = (int?)z ?? 0;        //  == 42
int c = (int?)null ?? 0;     //  == 0
37
ответ дан 3 December 2019 в 00:44
поделиться

Способ получения общего класса, который возвращает ничего не работает:

 Class GetNull(Of T)
      Public Shared Function Value() As T
           Return Nothing
      End Function
 End Class



 Debug.Print(GetNull(Of Integer).Value())
0
ответ дан 3 December 2019 в 00:44
поделиться

Проверьте этот пост для в основном полного метода написания расширения только для этого. Мой сценарий тянет данные из namevalueCollection.

http://hunterconcepts.com/blog/extsionsions_httprequestformquerystring/

0
ответ дан 3 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: