我熟悉C#规范,第5.3节,它说在使用之前必须分配一个变量.
在C和非托管C++中,这是有道理的,因为堆栈没有被清除,并且用于指针的内存位置可能在任何地方(导致难以追踪错误).
但我的印象是运行时不允许真正的"未分配"值.特别是未初始化的引用类型将始终具有空值,而不是先前调用方法或随机值所遗留的值.
这是正确的,还是我错误地假设这些年来检查null是否足够?你可以在C#中使用非真实的变量,或者CLR是否会处理这个变量并且总是设置了一些值.
我正在学习如何从头开始创建二进制搜索算法的教程.但是我收到错误"使用未分配的局部变量'Pivot'".我是这门语言的新手,以前只尝试过更简单的语言.
我为缺乏内部文档和使用空白区域而道歉.
错误是在使用"//"标记的代码底部附近
这是程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Binary_Search_2
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[10];
Random rnd = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = rnd.Next(1, 10);
}
Array.Sort(arr);
for (int i = 0; i < arr.Length; i++)
{
Console.Write("{0},", arr[i]);
}
int Start = 0;
int End = arr.Length;
int Center = Start + End / 2;
int Pivot; …Run Code Online (Sandbox Code Playgroud)