如果变量被定义为字符串,如果其中的值为null,是否可以测试它?
如果我写:
string b = null;
bool c = b is string;
Run Code Online (Sandbox Code Playgroud)
然后c将为false,因为它会查看内容,该内容为null而不是字符串.
如果我写:
string b = null;
bool c = (b.GetType() == typeof(string));
Run Code Online (Sandbox Code Playgroud)
然后它崩溃,因为s为null,你不能在空值上调用GetType().
那么,我如何检查b以找出它是什么类型?某种反思可能吗?或者有更简单的方法吗?
编辑1:澄清问题!
我的问题有点不清楚,这是我的错.在示例中,它看起来像我正在尝试测试变量的内容.但我想在不查看内容的情况下测试变量本身.在给出的代码示例中,我可以看到b是一个字符串,但是如果我不知道b是否是字符串并且只想测试变量s以查看它是否是字符串.
那么,我怎么知道变量被定义为什么类型?如本例所示,但x是一个未知变量,可能被定义为一个字符串,它也可能是null(因为它可能为null,这个例子不起作用).
bool c = (x.GetType() == typeof(string));
Run Code Online (Sandbox Code Playgroud)
编辑2:工作解决方案!
感谢所有答案,我能够解决它.这就是工作解决方案的成果.我首先创建了一个帮助函数来测试一个变量的定义类型,即使该值为null并且它没有指向任何东西也是如此.
public static Type GetParameterType<T>(T destination)
{
return typeof(T);
}
Run Code Online (Sandbox Code Playgroud)
然后我可以调用此函数并测试我的"疑似字符串",并查明它是否真的是一个字符串.
// We define s as string just for this examples sake but in my "definition" we wouldn't be sure about whether s is a string or not.
string s …Run Code Online (Sandbox Code Playgroud) 我有一个数据库,我的表当前正在使用,没有定义索引.我希望尽可能提高速度.我已经准备好了索引,但想知道它是否也需要成为主键?此外,对于表中的旧记录,索引将为null.这是一个问题吗?我想知道最好的方法是什么.
这是当前的表结构(我计划只插入'id'作为索引)
Field Type Collation Attributes Null
user varchar(255) utf8_general_ci No
pass varchar(255) utf8_general_ci No
ts varchar(255) utf8_general_ci No
lat varchar(255) utf8_general_ci No
Run Code Online (Sandbox Code Playgroud) 我有一个GridView,其中一列用于显示在我的网站前端显示的字段的显示顺序.而不是进入编辑页面中的每个记录并且必须以这种方式更改顺序,能够单击按钮并使整个DisplayOrder(int)可编辑更容易,因此使生活更容易.如何才能做到这一点?
我想创建一个临时表,它将暂时隐藏真实的表,并具有与真实表相同的名称和结构.
独立所有功能都按预期工作.这将创建一个临时表,该表隐藏上一个表,直到再次删除临时表为止:
CREATE TEMPORARY TABLE t (test INT);
Run Code Online (Sandbox Code Playgroud)
这将创建一个与原始结构具有相同结构(但名称不同)的临时表:
CREATE TEMPORARY TABLE t2 LIKE t;
Run Code Online (Sandbox Code Playgroud)
但是这给出了一个错误:
CREATE TEMPORARY TABLE t LIKE t;
Run Code Online (Sandbox Code Playgroud)
1066 - 不唯一的表/别名:'t'
该表是一个持久高速缓存,用于保存从原始表中获取时需要太长时间的分组数据.此数据用于生成报告.有时,对于部分报告,我想从数据的子集中新创建缓存.临时表是理想的,因为我可以用新数据覆盖原始缓存,在其上运行报告功能,并在连接结束时自动删除,而所有其他进程可以愉快地使用真正的持久表.
我在android应用程序中使用twitter4j.我正在使用我的消费者密钥和秘密的代码,当我登录到Twitter时,它首次尝试成功登录.但是当我再次运行代码然后尝试时,因为我之前已经过身份验证,它会让我登录但是会给出"获取访问令牌的错误".我不明白如何处理它..任何人都可以帮助..我正在使用此代码登录
public class TwitterLoginActivity extends Activity {
TextView tv;
Button loginBtn;
private TwitterApp mTwitter;
private ConnectionDetector cd;
ProgressDialog pDialog;
private static SharedPreferences mSharedPreferences;
AlertDialogManager alert = new AlertDialogManager();
RequestToken requestToken;
private static final String CONSUMER_KEY = "*****************";
private static final String CONSUMER_SECRET = "*****************************************";
static String PREFERENCE_NAME = "twitter_oauth";
static final String PREF_KEY_OAUTH_TOKEN = "oauth_token";
static final String PREF_KEY_OAUTH_SECRET = "oauth_token_secret";
static final String PREF_KEY_TWITTER_LOGIN = "isTwitterLogedIn";
static final String URL_TWITTER_AUTH = "auth_url";
static final String URL_TWITTER_OAUTH_VERIFIER = "oauth_verifier";
static …Run Code Online (Sandbox Code Playgroud) 根据有关通过 JavaScript 样式库使用的文档,我尝试在我的应用程序中访问 Office Fabric UI 主题颜色。我已经按照说明安装了@uifabric/styling. 然后我应该简单地将样式导入为
import {
styles
} from '@uifabric/styling';
Run Code Online (Sandbox Code Playgroud)
...获取颜色。但我收到以下打字稿错误:
[ts] Module '"c:/.../node_modules/@uifabric/styling/lib/index"' has
no exported member 'styles'. Did you mean 'IStyle'?
Run Code Online (Sandbox Code Playgroud)
文档是旧的还是打字稿定义是旧的?
有任何想法吗?
假设我有两个类如下:
class Fruit
{
public string color { get; set; }
}
class Orange : Fruit
{
public double diameter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在fruit变量中创建一个橙色对象
Fruit fruit = new Orange() { color = "Orange", diameter = 10.0 };
// This line prints 10 even though the Fruit class doesn't contain a
// diameter property
Console.WriteLine( ( (Orange) fruit ).diameter );
Run Code Online (Sandbox Code Playgroud)
为什么整个橙子,包括直径属性,可以挤进水果变量?为什么水果变量不受Fruit类定义的限制?
如果我将新的Orange放在Orange变量中,那么会有什么不同,如本例所示?
Orange fruit = new Orange() { color = "Orange", diameter = 10.0 };
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一区别是,如果我对变量进行类型测试,并且在使用对象之前我不需要强制转换.但它必须有更多,对吧?
我一直在寻找Onenote API,在我看来,这主要是检索和发布完整页面(如果我输入错了,请纠正我)。我要做的是扩展Onenote内部的功能,以便在处理数据时可以将数据拉入Onenote文档中。这可能类似于对字典API或图片数据库API或类似对象进行REST调用。是否可以在Onenote API中...或通过使用任何其他连接工具来做到这一点?
我想要一个 C# Client 和 Java Server 中的聊天应用程序
我通过了 C# 客户端,但是当我响应 Java 服务器时出现了一些错误,我得到了错误@
无法访问已处理的对象 object name='System.Net.Socket.Socket'
class Program
{
static void Main(string[] args)
{
byte[] bytes = new byte[1024];// data buffer for incoming data
// connect to a Remote device
try
{
// Establish the remote end point for the socket
IPHostEntry ipHost = Dns.Resolve("localhost");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 95);
Socket Socketsender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// Connect the socket to the remote endpoint
Socketsender.Connect(ipEndPoint); …Run Code Online (Sandbox Code Playgroud)