﻿# V3228\. It is possible that an assigned variable should be used in the next condition\. Consider checking for misprints\.

The analyzer has detected a potential error where a variable with a similar name is checked instead of the intended one\.

The example:



```cpp
bool UserProcessing()
{
  ....
  var user1 = FindUser(id1);

  if (user1 == null)
    return false;
  ....
  var user2 = FindUser(id2);

  if (user1 == null)
    return false;
  ....
}
```

In the example, two variables with similar names, `user1` and `user2`, are initialized\. After initialization, the value of each variable should be checked for `null`\. However, due to a typo in the second `if` condition, the `user2` variable will not be checked\.

The fixed code:

```cpp
bool UserProcessing()
{
  ....
  var user1 = FindUser(id1);

  if (user1 == null)
    return false;
  ....
  var user2 = FindUser(id2);

  if (user2 == null)
    return false;
  ....
}
```

Another example:

```cpp
private readonly int _value;
....
public CustomType(int value)
{
  ....
  _value = value < 0 ? 0 : value;

  if (value == 0) { .... }
  ....
}
```

The `_value` field is assigned the `value` parameter that is limited to positive values\. Instead of validating the field, the parameter is checked for `0`, which may still have a negative value\.

The fixed code:

```cpp
private readonly int _value;
....
public CustomType(int value)
{
  ....
  _value = value < 0 ? 0 : value;

  if (_value == 0) { .... }
  ....
}
```