NullReferenceExceptionи так сообщает суть ошибки
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar!=' ')
return;
else
e.Handled = true;
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != ' ')
return;
else
e.Handled = true;
}
кто вас надоумил вмешиваться в обработку этих событий? я не к тому что нельзя, просто надо хорошо понимать зачем? *На коленкене работает.. при чем много по чему..
using System;
using System.IO;
using System.Linq;
namespace lastChar
{
class Program
{
static void Main(string[] args)
{
var lines = File.ReadAllLines(@"C:\Windows\System32\drivers\etc\hosts"); // для примера
for (var i=0; i < lines.Count(); i++) // в итераторе foreach элементы readonly.. типа функциональный стиль
{
if (!string.IsNullOrWhiteSpace(lines[i])) // а то на пустых строках эксепшен будем ловить
{
// строка, блин, штука то то же не изменяемая.. вот засада
var ch = lines[i].ToCharArray();
var idx = ch.Length - 1;
ch[idx] = Char.ToUpper(ch[idx]);
lines[i] = new string(ch);
}
Console.WriteLine(lines[i]);
}
Console.ReadKey();
//сохраняйте как хотите
//... и да - точки (решетки) в апкейсе остаются точками. только буквы можно апкейсить
}
}
}
label1.Text = "bingo!";
самой первой в обработчике, и лишь потом бы усложнял логику Кстати, НЕ ЛЕЗЬТЕ в тома LVM c помощью редакторов разделов! (gparted, partition magic, acronis и иже с ними) - угробите все нахрен.
using System;
using System.Diagnostics;
namespace stack
{
public class Program
{
static private int max = 100_000_000;
class Stack
{
private int[] sd = new int[max];
private int sp = -1;
public void Push(int data) => sd[++sp] = data;
public int Pop() => sd[sp--];
public void Rep(int sp, int data) => sd[sp] = data;
public void Inc(int sp, int data) => sd[sp] += data;
public void Dec(int sp, int data) => sd[sp] -= data;
public void Xor(int sp, int data) => sd[sp] %= data;
}
public static void StackTest()
{
var watch = new Stopwatch();
var stack = new Stack();
var count = max;
watch.Start();
for (int i = 0; i < count; i++)
stack.Push(i);
watch.Stop();
Console.WriteLine(watch.Elapsed);
watch.Restart();
for (int i = 0; i < count; i++)
stack.Xor(i, 2);
watch.Stop();
Console.WriteLine(watch.Elapsed);
watch.Restart();
for (int i = 0; i < count; i++)
stack.Pop();
watch.Stop();
Console.WriteLine(watch.Elapsed);
Console.ReadKey();
}
public static void Main() => StackTest();
}
}
bool empty() => sp < 0;
.. ну в смысле для данного прототипа )) String thePlayer = players[counter];
устраняет креш ;))String players[] = {"David", "Daniel", "Anna", "Gregory"};
int totalPlayers = players.length;
int counter=0;
while (counter < totalPlayers)
{
String thePlayer = players[counter++];
if (thePlayer.equals("David")){
continue;
}
System.out.println("While equals Congratulations, "+ thePlayer+ "!");
}
counter++;
если расположена до String thePlayer = players[counter];
вызовет креш выхода за диапазон, так как while (counter < totalPlayers)
условие проверил, но мы тут же его изменяем (инкремент)String thePlayer = players[counter++];
String thePlayer = players[counter];
counter++; // но обязательно сразу, строго после, и ни в коем случае не раньше