我大部分时间都在使用VB.Net超过一年,并且注意到了这一点
我是疯了还是VB.Net 没有 "无法访问的代码"警告?
即使在两个写字线调用之间存在回报,下面的编译也会非常愉快地发出警告或错误.
Sub Main()
Console.WriteLine("Hello World")
Return
Console.WriteLine("Unreachable code, will never run")
End Sub
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?有没有办法切换到我找不到的.
如果没有,是否有充分理由将其遗漏?(或者我认为这是一个悲惨的事态我是对的)
原谅这个问题的咆哮,这不是咆哮,我想要一个答案.
谢谢
我已经在MS Connect上提出了这个问题,就像bug#428529一样
更新
我收到了VB Teams项目经理的以下内容
感谢您抽出宝贵时间报告此问题.编译器对此方案的支持有限,正如您所指出的,我们没有针对无法访问的代码的警告.我们的流分析算法确实处理了一些场景,例如:
Sub Main()
Dim x As Integer
Return
x = 4
End Sub
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您将收到一条警告,指出x从未被分配过.对于您提到的情况,我们将不得不考虑为将来的版本实现该功能.
Date数据类型的精确度(通过几分之一秒)?多年以后,我正在重新审视VB6,因为我的生活不记得我曾经知道的事情.我考虑过在这上面放一个内存泄漏标签,因为我的记忆泄露了(赶紧冲).
之后我发现了这个API调用,它似乎工作:
Declare Sub GetSystemTime Lib "kernel32.dll" (lpSystemTime As SystemTime)
Public Type SystemTime
Year As Integer
Month As Integer
DayOfWeek As Integer
Day As Integer
Hour As Integer
Minute As Integer
Second As Integer
Milliseconds As Integer
End Type
Run Code Online (Sandbox Code Playgroud) typedef struct temp
{
int a,b;
char *c;
temp(){ c = (char*)malloc(10);};
~temp(){free(c);};
}temp;
int main()
{
temp a;
list<temp> l1;
l1.push_back(a);
l1.clear();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
给出分段错误.
我有一个存储过程返回两个记录集,我使用GetReader调用.我迭代第一个,调用IDataReader.NextResult(),然后迭代第二个.
我为sp中的输出参数赋值,但是当我用读者完成后检查值时,我的输出参数为空.看起来像个bug.我不想使用选择,因为我不喜欢软糖.一些片段......
...
sp.Command.AddParameter("@SelectedTabID", selectedTabID, DbType.Int32);
sp.Command.AddParameter("@CurrentTabID", 0, DbType.Int32, ParameterDirection.Output);
sp.Command.AddParameter("@TypeID", 0, DbType.Int32, ParameterDirection.Output);
Run Code Online (Sandbox Code Playgroud)
(注意这样做或使用AddOutputParameter()产生相同的结果)
...
using(IDataReader reader = sp.GetReader())
{
while (reader.Read()) {...}
if (reader.NextResult()) {while (reader.Read()) {...}}
}
Run Code Online (Sandbox Code Playgroud)
...
int one = (int)sp.OutputValues[0]; //null expected an int
int two = (int)sp.OutputValues[1]; //null expected an int
Run Code Online (Sandbox Code Playgroud)
期待一些智慧的宝石:)
在
SELECT a.NAME, a.NUMBER, a.STRING, a.RDB$DB_KEY FROM ADMIN a
Run Code Online (Sandbox Code Playgroud)
什么代表什么?
谢谢.
与SQL Server 2000类似但不具有相同性- 查询表的外键关系
我需要一个T-SQL语句,它将使用给定表名的SQL 2000,将返回该表的外键关系,例如
表MyFristTable具有MySecondTable的外键,其中MyFirstTable.ColA必须位于MySecondTable.ColB中.如果为MyFirstTable运行sql语句(或存储过程)并返回结果集,我会很高兴
Column | FK_Table | FK_COLUMN
----------------------------------
ColA | MySecondTable | ColB
Run Code Online (Sandbox Code Playgroud)
注意:我有SQL 2005的样本,因为它们依赖于sys.foreign_key_columns而无法工作
我宁愿不必解析sp_help语句的结果.
谢谢,
dbcc checkident (MyTable, NORESEED)
将在消息中显示标识值.我无法select通过a 看到我需要的身份信息DataReader.
任何想法?
谢谢大家
我在客户网站上遇到了一个问题,其中包含"HabitaþÒo"等字样的行会在输出中受到损坏.我正在处理一个文本文件(拉出选定的行并将它们写入另一个文件)
为了诊断,我把问题归结为一个只有那个坏词的文件.
原始文件不包含BOM,但.net选择将其读作UTF-8.
读取和写入时,这个词最终看起来像"Habita o".
BadWord.txt文件的十六进制转储如下所示

使用此代码复制文件
using (var reader = new StreamReader(@"C:\BadWord.txt"))
using (var writer = new StreamWriter(@"C:\BadWordReadAndWritten.txt"))
writer.WriteLine(reader.ReadLine());
Run Code Online (Sandbox Code Playgroud)
...给...

保留读者编码也没有做任何事情
using (var reader = new StreamReader(@"C:\BadWord.txt"))
using (var writer = new StreamWriter(@"C:\BadWordReadAndWritten_PreseveEncoding.txt", false, reader.CurrentEncoding))
writer.WriteLine(reader.ReadLine());
Run Code Online (Sandbox Code Playgroud)
...给...

任何想法在这里发生了什么,我如何处理这个文件并保留原始文本?
Hii,我要求对提供给不可读格式的字符串进行编码,并且必须在执行某些操作后进行解码.我尝试过'Base64'编码.但这不是一种安全的方式.我需要一些其他解决方案.就上述情况提供一些帮助.
这种约束力
<tk:DataGridTextColumn Binding="{Binding Path=Id, Mode=OneWay}"
Header="Sale No." Width="1*" />
Run Code Online (Sandbox Code Playgroud)
给出了这个错误
TwoWay或OneWayToSource绑定不能对类型的只读属性"Id"起作用...
"Id"属性确实是只读的,我想虽然这样Mode=OneWay就足够了.
我很累,而且我知道我错过了一些明显的东西所以我现在道歉要问一个非常愚蠢的问题.
谢谢
BW
c# ×3
.net ×2
datareader ×2
c++ ×1
data-binding ×1
datetime ×1
encryption ×1
file-io ×1
formatting ×1
identity ×1
memory ×1
parameters ×1
pointers ×1
sql ×1
stl ×1
text ×1
types ×1
vb.net ×1
vb6 ×1
wpf ×1
xaml ×1