Использование ключевого слова var C# [дубликат]

Вы определили первичный ключ дважды. Попробуйте:

CREATE TABLE SHIPPING_GRID(  
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique ID for each row',  
    shipping_vendor_no INT(6) NOT NULL COMMENT 'Foreign key to VENDOR.no for the shipping vendor (vendors_type must be 3)',  
    start_vendor_no INT(6) NOT NULL COMMENT 'Foreign key to VENDOR.no for the vendor being shipped from',  
    end_vendor_no INT(6) NOT NULL COMMENT 'Foreign key to the VENDOR.no for the vendor being shipped to',  
    shipment_duration INT(1) DEFAULT 1 COMMENT 'Duration in whole days shipment will take',  
    price FLOAT(5,5) NOT NULL COMMENT 'Price in US dollars per shipment lbs (down to 5 decimal places)',  
    is_flat_rate TINYINT(1) DEFAULT 0 COMMENT '1 if is flat rate regardless of weight, 0 if price is by lbs',  
    INDEX (shipping_vendor_no),  
    INDEX (start_vendor_no),  
    INDEX (end_vendor_no),  
    FOREIGN KEY (shipping_vendor_no) REFERENCES VENDOR (no),  
    FOREIGN KEY (start_vendor_no) REFERENCES VENDOR (no),  
    FOREIGN KEY (end_vendor_no) REFERENCES VENDOR (no)  
) TYPE = INNODB;

первичный ключ ПОСТАВЩИКА должен быть INT (6), и обе таблицы должны иметь тип InnoDB.

12
задан Community 23 May 2017 в 12:02
поделиться

5 ответов

Я думаю, что можно использовать var , где это упрощает чтение кода, что для меня означало бы, что тип, который заменяет var должно быть совершенно очевидным.

Например, это было бы хорошим использованием var (надуманный пример):

var thing = new Dictionary<int, KeyValuePair<string, int>>();

Однако это было бы плохим использованием var :

var thing = GetThingFromDatabase();
29
ответ дан 2 December 2019 в 03:10
поделиться

Это то же самое Дело в том, что при использовании ключевого слова var переменная неявно типизируется, а компилятор определяет тип во время сборки. Я предпочитаю указывать тип, а не использовать var в большинстве случаев, поэтому я меняю свои настройки resharper.

8
ответ дан 2 December 2019 в 03:10
поделиться

Насколько я помню, Решарпер просто сказал, что это может быть написано таким образом. Это не говорит о том, что вы должны.

Множество предложений - это просто предложения, от которых я отказался, когда впервые увидел их .. Это одно из них.

Еще одно было сказано, что писать "this.someProperty" излишне, а я думаю, что от этого код станет легче читать.

1
ответ дан 2 December 2019 в 03:10
поделиться

Resharper также предлагает преобразовать выражение if в истинное или неверное. Практически то же самое, но это зависит от вашего стиля программирования. Итак, когда вам будет удобнее использовать var - воспользуйтесь этим предложением.

0
ответ дан 2 December 2019 в 03:10
поделиться

Я считаю это полезным в некоторых случаях, когда объявление типа очень длинное, например:

Dictionary<int, string> item = new Dictionary<int, string>();

становится

var item = new Dictionary<int, string>();
12
ответ дан 2 December 2019 в 03:10
поделиться
Другие вопросы по тегам:

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