110,533
社区成员
发帖
与我相关
我的任务
分享
static void digui(int a,int b)
{
if (a + b == 5)
{
Console.WriteLine(a + b);
return;
}
Console.WriteLine("a变量还差"+(5-b-a));
a++;
digui(a, b);
}
static bool isNotified=false;
//是否提醒标记
//默认未否
static bool isNotified = false;
static void digui(int a, int b)
{
if (a + b == 5)
{
Console.WriteLine(a + b);
return;
}
//如果没有提示过
if (isNotified == false)
{
//进行提示
Console.WriteLine("a变量还差" + (5 - b - a));
//将提醒标记改成是,说明已经提醒过了
isNotified = true;
}
a++;
digui(a, b);
}
static bool isNotified = false;
if (!isNotified)
{
Console.WriteLine("a变量还差" + (5 - b - a));
isNotified = true;
}
static void Main(string[] args)
{
digui(0, 1);
digui(0, 1);
Console.ReadKey();
}
private static System.Threading.Semaphore semaphore = new Semaphore(1, 1);
static void digui(int a, int b)
{
if (semaphore.WaitOne(TimeSpan.Zero))
{
Console.WriteLine("第一次进入做,后续进入被锁不做");
}
if (a + b == 5)
{
Console.WriteLine(a + b);
return;
}
a++;
digui(a, b);
try
{
semaphore.Release();
}
catch (Exception e)
{
}
}
private static Lazy<Task> write;
static void digui(int a, int b)
{
if (write == null)
{
write= new Lazy<Task>(()=>Task.Factory.StartNew(() =>
{
Console.WriteLine("a变量还差"+(5-b-a));
}));
}
write.Value.Wait();
if (a + b == 5)
{
Console.WriteLine(a + b);
return;
}
a++;
digui(a, b);
}
static bool isNotified = false;
static void digui(int a, int b)
{
if (a + b == 5)
{
Console.WriteLine(a + b);
return;
}
if (!isNotified)
{
Console.WriteLine("a变量还差" + (5 - b - a));
isNotified = true;
}
a++;
digui(a, b);
}
digui(1,3)
{
if (1 + 3 == 5)
{
Console.WriteLine(a + b);
return;
}
Console.WriteLine("a变量还差" + (5 - 3 - 1));
a++;a = 2;
//digui(a, b);
digui(2, 3)
{
if (2 + 3 == 5)
{
Console.WriteLine(a + b);
return; //返回
}
//不执行了
Console.WriteLine("a变量还差" + (5 - 3 - 2));
a++; a = 3;
}
}