在我的C#应用程序中,我想在一个对象中存储空值,如:
if (txtClass8Year.Text == "")
{
distributor.Class8YrPassing = null;
}
else
{
distributor.Class8YrPassing = Convert.ToInt32(txtClass8Year.Text);
}
但是当我试图将整个陈述写成一行时,它无效:
(txtClass8Year.Text == "") ? null : Convert.ToInt32(txtClass8Year.Text);
提前致谢。
帕塔
答案 0 :(得分:2)
您需要将int
结果转发回Nullable<int>
作为int
,与int?
的类型不同,并且不能隐式转换为distributor.Class8YrPassing = (txtClass8Year.Text == "")
? null
: (int?)Convert.ToInt32(txtClass8Year.Text);
,所以我们需要具体到那里:
null
或者您也可以将int?
投放到distributor.Class8YrPassing = (txtClass8Year.Text == "")
? (int?)null
: Convert.ToInt32(txtClass8Year.Text);
也可以使用:
String.IsNullOrEmpty
对于三元运算符,我们需要确保在两种情况下都返回相同的类型,否则编译器会给出如上所述的错误。
并建议更好的方法是使用""
方法而不是检查distributor.Class8YrPassing = String.IsNullOrEmpty(txtClass8Year.Text) || String.IsNullOrWhiteSpace(txtClass8Year.Text)
? null
: (int?)Convert.ToInt32(txtClass8Year.Text);
文字字符串:
import tensorflow as tf
import numpy as np
from PIL import Image
from tensorflow.python.keras._impl.keras.applications import imagenet_utils
model = tf.keras.applications.VGG16()
VGG = model.graph
VGG.get_operations()
input = VGG.get_tensor_by_name("input_1:0")
output = VGG.get_tensor_by_name("predictions/Softmax:0")
print(input)
print(output)
I = Image.open("Elephant.jpg")
new_img = I.resize((224,224))
image_array = np.array(new_img)[:, :, 0:3]
image_array = np.expand_dims(image_array, axis=0)
with tf.Session(graph=VGG) as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
pred = (sess.run(output,{input:image_array}))
print(imagenet_utils.decode_predictions(pred))