Returning bool from another script (Cannot implicitly convert type 'void' to 'bool')

C# :

My main script :

void OnTriggerEnter(Collider other)
{
   if(gameManager.GetComponent("Lab").SendMessage("Check",other))
   {
      // The things I'm going to do right after I solve this issue.
   }
}

“Lab” script :

bool Check(Collider other)
{
   if (other.transform.tag == "object_A")
      return true;
   else
      return false;
}

But Unity gives an error saying " Cannot implicitly convert type ‘void’ to ‘bool’ ".
Unity doesn’t seem to let me return values between scripts. Maybe it’s because SendMessage method does not receive values. How can I manage to return a value from a method that’s in another script?

I don’t want to use bools and send messages back because my main script will be attachted to at least 10 objects. I want to do it in a simple way. Thanks in advance!

Is there any reason for using SendMessage instead of calling the method directly?
You just need Check to be public (as suggested by @Anxo replace this line:

if(gameManager.GetComponent("Lab").SendMessage("Check",other))

with this:

if(gameManager.GetComponent<Lab>().Check(other))

C# default declaration is private. so it would have to be public bool but where are you returning that bool to? I would set it up like this in the “Lab” script.

public bool isChecked = false;
public void Check(Collider other)
{
   if(other.transform.tag == "object_A")
      isChecked = true;
   else 
      isChecked = false;
}

Alternatively you could check if the tag == something before you send a call and save yourself the send.